我可以将templateUrl传递给指令 - AngularJS

jha*_*amm 16 javascript angularjs

有没有办法将a传递templateUrl给我的指令.我知道我可以使用翻译,但这似乎太多了.例如,我有一个widget指令,我想填写特定的HTML.有没有办法传递它像:

<div widget templateUrl="template1.html"></div>
<div widget templateUrl="template2.html"></div>
Run Code Online (Sandbox Code Playgroud)

And*_*ger 33

如果这是一个固定的URL,您可以定义一个指令,如

app.directive('myDirective', function() {
    return {
        templateUrl: function(tElement, tAttrs) {
            return tAttrs.templateUrl;
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它

<div my-directive template-url="template1.html"></div>
Run Code Online (Sandbox Code Playgroud)

否则,您可以传递URL,因为您将任何其他属性传递给指令并ng-include在指令的模板中使用.

  • 你不能在Angular 1.0.8中使用函数作为`templateUrl`,所以一定要使用至少Angular 1.1.4. (2认同)