我需要根据日期来决定模板。我看到一个很好的example。 但在这个例子中,模板非常简单,他可以使用字符串。在我来说,我想用PHP来制作模板,所以我用这种方式:动态模板指向angularjs
eng.directive('vis', function ($compile) {
var getTemplate = function(ir) {
var k = (ir.visits.last && parseInt(ir.visits.last.done))?'V':'E';
var s = (ir.data.kind == 0)?'H':'V';
return s+k+'T';
}
var linker = function(scope, element, attrs) {
scope.$watch('ir',function(){
if (!scope.ir) return;
element.html(jQuery('#'+getTemplate(scope.ir)).html()).show();
$compile(element.contents())(scope);
})
}
return {
restrict: "E",
rep1ace: true,
link: linker
};});
和模板是:
<div id=HVT style="display:none">
<p>horizontal view template</p>
</div>
<div id=HET style="display:none">
<p>horizontal {{1+5}} Edit template</p>
</div>
<div id=VVT style="display:none">
<p>vertical view template</p>
</div>
<div id=VET style="display:none">
<p>vertical Edit template</p>
</div>
我肯定有一个更聪明的方法。 使用templateUrl更好吗?有人可以告诉我如何使用它在我的情况?
编辑:有一个问题。模板不看范围
template&templateUrl可以采用如下函数:'function(el,attrs){return'/ tmpls /'+ attrs.template; }' – 2013-11-22 20:32:19
我试过上面的方法,现在它对我的工作很好,即使我有导航的控制权,唯一的问题是如果我有动态状态(状态('manualTest /:testName'),并且回到动态状态页面,ng -init被调用两次 – Anand 2017-11-06 07:41:52