这是我的第一个问题,所以我希望我可以解释这种情况 angularJs文档here讨论了将指令templateUrl作为函数动态返回。还有一个Plunkler现场演示here。如何使用范围动态地更改angularjs自定义指令templateUrl
.directive('....', function() {
return {
templateUrl: function(elem, attr){
return **.... scope.Somthing ...**;
}
};
});
功能并不需要一个范围参数,这是主要的问题
的唯一方法,到目前为止,我发现是与相关的指令范围动态设置TemplateUrl是这样
.directive('....', function() {
return {
link: function (scope, element, attrs) {
scope.getTemplateUrl = function() {
return **.... scope.Somthing ...**;
};
},
template: ''
};
});
另一种解决方案是
.directive('....', function() {
return {
controller: function ($scope) {
$scope.getTemplateUrl = function() {
return **.... scope.Somthing ...**;
};
},
template: ''
};
});
我的第一个问题是,这看起来像修补程序的问题
我的第二个问题是在指令中生成html字符串。
是否有任何其他方式来存档?
+0
我会在'ng-include'中使用一个变量而不是函数调用,但是我认为你所做的完全没问题。如果您在指令中使用HTML时感到不舒服,您可以始终将该片段保存到文件中。这比注入'$ compile'更简单,并且自己动态编译模板。 –