Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以将templateUrl传递给指令-AngularJS吗_Javascript_Angularjs - Fatal编程技术网

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: