动态传入angular.js指令模板属性

时间:2014-12-05 06:22:40

标签: angularjs

如何将字符串分配给angular.js指令的template属性,方法是将字符串作为属性传递给任何会消耗该指令名称的元素?

例如:

在标记中:          ...     

然后在angular指令中:

angular.module('TestModule', [])
.directive('myCustomDirective', function(){
     return {
        restrict: 'AE',
        template: 'my_template'
    };
});

我已经通过使用来尝试绑定到指令的所有策略 '@','='和'&'但它们只能帮助将值传递到模板中但不会传递 模板本身。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

正如New Dev所建议的,您可以在链接功能期间动态编译和添加模板。或者您可以定义固定的指令模板并使用ng-include来变换内部内容:像这样:

template: "<div ng-include='templateToUse'></div>", 
scope: {templateToUse:'='}

现在,如果您从定义指令的位置传递不同的templateToUse。

<div my-directive template-to-use='determineTemplate()'></div>