我有一个递归的Angular指令,该指令使用模板变量并在link
函数中进行编译。
问题是,我的模板已经变得很长且不受控制,我想将其外部化到一个外部HTML文件中(这也将使其更易于自动缩进)。
您如何将外部模板加载到可以在内部使用的指令中$compile
?
我已经看过了templateURL
,但是那不能让我命名变量并将其传递给$compile
函数。
var template =
"<p>My template</p>"+
"<this-directive val='pass-value'></this-directive>";
return {
scope: {
...
},
...
link: function(scope, element){
element.html(template);
$compile(element.contents())(scope);
}
}
和
您可以使用该$templateRequest
服务获取模板。这是一项便捷服务,该服务还将模板缓存在中$templateCache
,因此仅发出一个请求template.html
。
作为说明(并且不涉及递归指令的问题),其用法如下:
link: function(scope, element){
$templateRequest("template.html").then(function(html){
var template = angular.element(html);
element.append(template);
$compile(template)(scope);
});
};
监听器(检查“网络”标签以查看单个网络请求)
问题内容: 我对jinja2和模板的使用非常陌生,所以我想知道是否有一种简单的方法来加载外部javascript。我在考虑使用: 但我不禁要问: 有没有一种方法可以直接从模板指令中加载此脚本? 问题答案: 您有两种选择-第一种是您的选择方式-只需将适当的标记添加到模板中即可(如果希望在扩展第一个模板的模板中覆盖它,则可以添加一个块)。 第二种方法是使用Jinja2的功能: 使用的好处是Jinja2
问题内容: 我有一个遗留应用程序,该应用程序通过jQuery将一些内容插入了DOM。我希望代码库的遗留部分负责编译它插入DOM中的html。 我可以使用来编译初始html ,但是除非我从指令内部调用,否则不会编译指令模板或templateUrl添加的任何DOM元素。 我在这里做错了什么? 链接到小提琴: http://jsfiddle.net/f3dkp291/15/ index.html app
问题内容: 我正在构建一个角度指令,它将在几个不同的位置使用。我不能总是保证使用该指令的应用程序的文件结构,但是我可以强制用户将和(而不是真实的文件名)放在同一文件夹中。 页面评估时,会认为相对于自身。是否可以将设置为相对于文件? 还是建议仅在指令本身中包含模板。 我想我可能想根据不同的情况加载不同的模板,因此宁愿能够使用相对路径而不是更新 问题答案: 当前正在执行的脚本文件将始终是scripts
本文向大家介绍Angular 2 更改路线(使用模板和指令),包括了Angular 2 更改路线(使用模板和指令)的使用技巧和注意事项,需要的朋友参考一下 示例 现在已经设置了路由,我们需要一些方法来实际更改路由。 此示例将显示如何使用模板更改路由,但是可以在TypeScript中更改路由。 这是一个示例(无绑定): 如果用户单击该链接,它将链接到/home。路由器知道如何处理/home,因此它将
问题内容: 我目前正在机器上本地测试角度。当我尝试重新创建手风琴和对话框的示例时。我在控制台中收到此错误消息,提示模板丢失。 错误示例:404未找到-localhost / angular / template / message.html 当我查看指令时,有一个模板。 该指令的目的是什么? 下载整个有角度的zip文件时,这些模板是否应该包括在内? 我是否缺少应包含在标题中的其他文件? 问题答案:
问题内容: 我正在使用Jasmine编写AngularJS的指令测试,并与它们一起使用templateUrl:https : //gist.github.com/tanepiper/62bd10125e8408def5cc 但是,当我运行测试时,我得到了要点中包含的错误: 从我在文档中阅读的内容来看,我认为自己做得正确,但是事实并非如此-我在这里想念的是什么? 谢谢 问题答案: 如果您使用的是ng