我有一個指令,必須在模板中添加一些div。問題是,每次我添加一個新的之前創建的那個被替換爲新的內容。我知道這與隔離指令的範圍有關,但它似乎不起作用。我試過scope: {}
和scope: true
,結果相同。在Angular指令中隔離示波器
指令:
angular.module('bucket.directives', [])
.directive('bucketList', ['$compile', function($compile) {
var viaUrlTemplate = '<span class="bucketItem viaUrl">{{ displayName }} <i class="icon-delete">x</i></span>';
return {
restrict: 'A',
link: function(scope, element, attrs) {
scope.$on('urlBucketAdded', function(event, bucketInfo) {
scope.displayName = bucketInfo.bucketName;
scope.$apply(function() {
var content = $compile(viaUrlTemplate)(scope);
element.append(content);
});
});
}
}
}]);
的HTML看起來是這樣的:
<div bucket-list class="bucketList">
// new elements in 'viaUrlTemplate' get inserted here
</div>
所以,當我嘗試使用顯示名增加新的元素 - >內容1,內容2和內容3,我得到:
<div bucket-list class="bucketList">
<span class="bucketItem viaUrl"> Content 3 <i class="icon-delete">x</i></span>
<span class="bucketItem viaUrl"> Content 3 <i class="icon-delete">x</i></span>
<span class="bucketItem viaUrl"> Content 3 <i class="icon-delete">x</i></span>
</div>
謝謝!!
爲什麼不使用ng-repeat呢?你試圖展示的東西沒有任何複雜的東西需要一個自定義指令。 – Claies