Javascript 我可以将templateUrl传递给指令-AngularJS吗
是否有方法将Javascript 我可以将templateUrl传递给指令-AngularJS吗,javascript,angularjs,Javascript,Angularjs,是否有方法将模板URL传递给我的指令。我知道我可以使用转换,但这似乎太多了。例如,我有一个widget指令,我想用特定的html填充它。有没有一种方法可以像这样传递它: <div widget templateUrl="template1.html"></div> <div widget templateUrl="template2.html"></div> 如果这是一个固定的URL,您可以定义一个指令,例如 app.directive('myD
模板URL
传递给我的指令。我知道我可以使用转换,但这似乎太多了。例如,我有一个widget
指令,我想用特定的html填充它。有没有一种方法可以像这样传递它:
<div widget templateUrl="template1.html"></div>
<div widget templateUrl="template2.html"></div>
如果这是一个固定的URL,您可以定义一个指令,例如
app.directive('myDirective', function() {
return {
templateUrl: function(tElement, tAttrs) {
return tAttrs.templateUrl;
}
};
});
然后像这样使用它
<div my-directive template-url="template1.html"></div>
否则,您可以像将任何其他属性传递到指令中一样传递URL,并在指令的模板中使用
ng include
。在Angular 1.0.8中,您不能将函数用作templateUrl
,因此请确保至少使用Angular 1.1.4。这一点很好。我已经有一段时间没用stable branch了ng include
无论如何都应该可以工作。是否可以将变量传递到模板url而不是template1.html@Andyrooger@ddagsan如果您正在谈论像使用'='
绑定范围成员那样使用模板url,那么我认为这是不可能的。您需要访问作用域,但我认为模板函数将在该作用域可用之前运行。这个答案现在已经很老了,所以在angular的新版本中可能有更好的方法来解决这个问题。我在寻找如何使用组件和指令来解决这个问题,但是你的答案让我更接近我的答案,$element&$attrs: