【发布时间】:2016-06-24 01:04:07
【问题描述】:
这是我的第一个问题,所以我希望我能解释一下情况 angularJs 文档here 讨论了将指令 templateUrl 作为函数动态返回。还有一个 Plunkler 现场演示here。
.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: '<ng-include src="getTemplateUrl()"/>'
};
});
另一种解决方案是
.directive('....', function() {
return {
controller: function ($scope) {
$scope.getTemplateUrl = function () {
return **.... scope.Somthing ...**;
};
},
template: '<ng-include src="getTemplateUrl()"/>'
};
});
我的第一个问题是这看起来像是问题的补丁
我的第二个问题是必须在指令中构建 html 字符串。
还有其他方法可以实现吗?
【问题讨论】:
-
我会在
ng-include中使用变量而不是函数调用,但我认为您所做的一切都很好。如果您对指令中的 HTML 感到不舒服,您可以随时将该 sn-p 保存到文件中。这比注入$compile并自己动态编译模板要简单得多。
标签: angularjs