有没有办法只使用文件的一部分作为指令的templateUrl
?例如,如果我有一个文件
<input type="text" data-name="first-name" />
<input type="text" data-name="last-name" />
<input type="text" data-name="address" />
etc.
是否有一种方法可以让Angular只提取“名字”input
标记或仅提取“姓氏”input
标记,而不是使用整个文件?
我希望能够将多个指令的HTML内容作为单个HTML文件,因为只有一行代码似乎浪费了一个文件(UNIX哲学有其局限性)。另外,我可能希望将这些templateUrl
文件连接起来作为我的缩小过程的一部分,我想知道Angular不会为每个指令使用整个文件。
答案 0 :(得分:1)
没有办法只使用模板网址的一部分;整个事情被拉入并编译。
对于简短的模板,我发现在使用指令对模板进行衬里可能是最佳实践。当它只有一点点html时,上下文切换的减少往往是值得的,imo。
可以通过更改
中的标记来完成templateUrl: 'foo.html'
到
template: '<input type="text" data-name="address" />'
希望有所帮助!
答案 1 :(得分:0)
AngularUI具有此功能。在UI-Utils
包中,有ui-include
指令。这与ng-include
指令完全相同,只是它允许一个额外的属性fragment
,它包含页面的一部分而不是整个页面。
AngularUI UI-Utils页面上的示例代码演示得非常好:
<ui-include src="'my/url/to/partial/file'" fragment="'#id-to-fragment'"></ui-include>
<!-- Don't forget to quote string literals! -->
<!-- Don't forget to include jQuery if you need full selector support! -->
当然,你可能已经包含了jQuery。 :)