我有一个模板预加载在JavaScript的字符串数组中,像这样:var t = JST['firstTemplate']
,其中t
看起来类似于:
<div>This scope has a value of {{value}}</div>
我该如何在
ng-include
指令中使用预加载的模板?请注意,在这种情况下,我的模板可能更加复杂,可能包含嵌套的视图和模板以及它们自己的嵌套作用域和控制器。因此,我不确定是否有任何ng-bind指令会有所帮助?
更新:
查看
ng-include
的源代码,似乎将模板加载逻辑分解为可定制化的提供程序是一个很好的方法。当前的默认加载机制只是使用
$templateCache
作为缓存提供程序执行$http.get
。看起来我可以将我的模板内容注入到JST['firstTemplate']
中,但我必须在启动时为每个模板执行此操作。$templateCache.put('firstTemplate', JST['firstTemplate']);
然后拥有,
<div ng-include="firstTemplate"></div>
我可以编写一个自定义指令,与每个ng-include并排出现,以某种方式进行模板预缓存。但这似乎过于笨重。
更新#2
我将尝试覆盖templateCache,以便它使用我已经预加载的JST哈希。如果成功,将发布结果。
<div ng-include="'firstTemplate'"></div>
如果您没有将字符串传递给ng-include,则它会尝试从具有此名称的作用域变量获取该值。 - Armin