Angularjs 在ng repeat中创建指令
我有一个指令,我想用它来生成其他指令。以下操作不起作用:Angularjs 在ng repeat中创建指令,angularjs,directive,Angularjs,Directive,我有一个指令,我想用它来生成其他指令。以下操作不起作用: <span ng-repeat="picker in pickers | filter:{type:'click'}"> <span picker.name></span> </span> 我们有一个选择器指令,它基本上通过选择器循环,并尝试为每个选择器创建一个自定义指令: <span ng-repeat="picker in picker
<span ng-repeat="picker in pickers | filter:{type:'click'}">
<span picker.name></span>
</span>
我们有一个选择器指令,它基本上通过选择器循环,并尝试为每个选择器创建一个自定义指令:
<span ng-repeat="picker in pickers">
{{picker.name}}
<span {{picker.name}}></span>
</span>
{{picker.name}
每个选择器(Local、Dropbox、Googledrive)都声明了一个指令,我想从我的主选择器指令中使用这个指令
谢谢最好的解决方案似乎是在指令中使用“编译”: directive.html:
<span id='pickerButtons'></span>
'compile': function(element, attributes) {
var pickerButtons = document.querySelector('#pickerButtons');
var span = document.createElement('span');
span.innerHTML = '';
for (var i=0, tot=pickerService.pickers.length; i < tot; i++) {
if(pickerService.pickers[i].type === 'button'){
span.innerHTML += '<span><span picker-' + pickerService.pickers[i].name + '></span></span>';
}
}
pickerButtons.appendChild(span);
var linkFunction = function($scope, element, attributes) {
$scope['pickFrom'] = function(pickerObject){pickerService.pickFrom(pickerObject);};
$scope['pickList'] = pickerService.getPickList();
};
return linkFunction;
}
directive.js:
<span id='pickerButtons'></span>
'compile': function(element, attributes) {
var pickerButtons = document.querySelector('#pickerButtons');
var span = document.createElement('span');
span.innerHTML = '';
for (var i=0, tot=pickerService.pickers.length; i < tot; i++) {
if(pickerService.pickers[i].type === 'button'){
span.innerHTML += '<span><span picker-' + pickerService.pickers[i].name + '></span></span>';
}
}
pickerButtons.appendChild(span);
var linkFunction = function($scope, element, attributes) {
$scope['pickFrom'] = function(pickerObject){pickerService.pickFrom(pickerObject);};
$scope['pickList'] = pickerService.getPickList();
};
return linkFunction;
}
“编译”:函数(元素、属性){
var pickerButtons=document.querySelector(“#pickerButtons”);
var span=document.createElement('span');
span.innerHTML='';
for(var i=0,tot=pickerService.pickers.length;i
这是有效的属性名称吗?根据AngularJS约定,它应该是选择器名称。是否有名为pickerName的指令?是的,它是一个有效的属性名。{{picker.name}}打印正确的指令名,但如果我打印,picker.name不会被正确的指令名替换。据我所知,您不能使用范围变量动态形成HTML属性名。请提供更多代码以更好地演示您试图完成的任务。谢谢,请查看更新的问题看起来我应该利用指令编译