[英]Angularjs - dynamic template URL
我有一个指令,我希望能够在某些逻辑上加载其他模板。
在下面的示例中,“ type”是作用域上的变量,我希望将其传递给指令以构建指令模板的URL。
<direct type="{{type}}"></direct>
var direct = function () {
return {
restrict: 'E',
templateUrl: function(tElement, tAttrs) {
console.log(type);
return 'resources/' + tAttrs.type + '.html';
}
};
};
不评估类型,而是在tAttrs中传递实际的字符串“ type”。 你知道我可能会错过什么吗?
您必须通过直接指令上的隔离范围来执行此操作。
我在这里为您提供了一个示例: http : //jsbin.com/lagez/1/edit
您可以在示例链接中看到,必须在范围内的指令范围内指定要读取的属性:{attributeName:'@'}
作用域{}中的属性名称语法应为驼峰式,且首字母较小。 例如typeName,然后在指令中指定属性名称,例如
您遇到的问题是,在评估templateUrl时,没有将该值绑定到的范围,因此它返回属性的实际字符串内容-而不是您期望的插值值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.