我的目標是有一個指令,我給它的內容,並重復它們X次。就像ng-repeat一樣,只有我想將其包含在其他功能中,例如限制切換和超鏈接內容外的額外元素。AngularJS transclude ng-repeat指令中的作用域
出於某種原因,無論我嘗試什麼,由於某種原因,跨接無法訪問指令隔離範圍。
我在link
裏面使用了transclude
函數,在幾種不同的情況下,都無濟於事。這裏有一個演示:
而這裏的代碼的要點:
app.directive('repeatContents', function() {
return {
scope: {
items: '=repeatContents',
limit: '=repeatLimit'
},
transclude: true,
template: '<div ng-repeat="item in items">' +
'<em>Outside transclude: {{item}}</em><br />' +
'<ng-transclude></ng-transclude>' +
'</div>',
link: function(scope, el, attrs, ctrl, transclude) {
transclude(scope, function(clone, scope) {
el.append(clone);
});
}
}
});
如果你看一下plunkr,你會看到transclusion外{{item}}
是可用的,但不在裏面。不管link
函數的內容是應該照顧它的。任何想法我可以做什麼?
我不能讓你要去什麼工作......但或者,我沒有得到它的工作沒有通過將其他指令放在模板中就可以實現transclude ...以下是PLUNK,以防萬一它對您有所幫助https://plnkr.co/edit/v7oFnukZxHMEi3xasFmc?p=preview – tarrball
沒關係,如果我只有一個用例,但在我的使用中,我將不得不復制這個指令的每一個用例,我已經失去了指令的目的 – casraf