Angularjs 指令可用于TemplateUrl,但不能用于TemplateUrl
这是一个奇怪的。我是个新手,只学了一个星期左右 我有两条指示 第一:Angularjs 指令可用于TemplateUrl,但不能用于TemplateUrl,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,这是一个奇怪的。我是个新手,只学了一个星期左右 我有两条指示 第一: app.directive('block', function() { return { restrict: 'E', replace: true, scope:true, link: function(scope, element, attrs) { scope.blockCss = function() {
app.directive('block', function() {
return {
restrict: 'E',
replace: true,
scope:true,
link: function(scope, element, attrs) {
scope.blockCss = function() {
return attrs.block;
}
scope.blockSize = function() {
return attrs.blocksize;
}
scope.category = function() {
return attrs.category;
}
},
templateUrl: function(elem,attrs) {
return attrs.block + '.html';
}
}
});
这在一个名为:
<block blocksize="3" category="foo1" blockcss="bar1"></block>
现在是踢球者
相同的指令,但从TemplateUrl更改为TemplateUrl,以便具有更动态的内容:
app.directive('block', function() {
return {
restrict: 'E',
replace: true,
scope:true,
link: function(scope, element, attrs) {
scope.blockCss = function() {
return attrs.block;
}
scope.blockSize = function() {
return attrs.blocksize;
}
scope.category = function() {
return attrs.category;
}
},
template: function(elem,attrs) {
return '<div class="blocksize{{blockSize()}} {{blockCss()}}" ng-repeat="item in items | orderByPriority | filter:{category:category()} | orderBy:myorder" ng-include src="\'{{blockCss()}}.html\'"></div>';
}
}
});
app.directive('block',function(){
返回{
限制:'E',
替换:正确,
范围:正确,
链接:函数(范围、元素、属性){
scope.blockCss=函数(){
返回属性块;
}
scope.blockSize=函数(){
返回attrs.blocksize;
}
scope.category=函数(){
返回属性类别;
}
},
模板:函数(元素、属性){
返回“”;
}
}
});
我可能是个白痴,但如果有人能告诉我我错过了什么,我将不胜感激
除此之外,我希望能够在模板或模板URL中引用元素(例如“block”元素)中的属性-这就是为什么我有范围定义(需要是范围子项)
非常期待任何回复。我认为您不能将模板用作函数,而且在您的情况下,它没有任何意义,因此您最好只使用模板:“字符串”好的,非常感谢。这对它有很大的帮助。但是我仍然无法将根元素的属性放入ng include模板中。有什么方法可以让我这么做吗?@DayanMorenoLeon你可以用一个函数作为模板,这个函数只需要返回一个字符串。但我还是不明白OP想要做什么嘿你能给我指一下那部分文档吗?我没有;我没有看到功能性的文档,这将是非常有趣的,你可以用它做有趣的事情