2016-07-15 169 views
2

我使用的指令多次在頁面上像角多個實例,範圍不是孤立的,同一範圍

$scope.stylusright[0] = 330; 

var appendHtml = $compile('<directive-history rightstylus="{{stylusright[0]}}"></directive-history>')($scope); 

$element.append(appendHtml); 

$scope.stylusright[1] = 660; 

var appendHtml = $compile('<directive-history rightstylus="{{stylusright[1]}}"></directive-history>')($scope); 

$element.append(appendHtml); 

我的指令看起來像

angular.module('mymodule').directive('directiveHistory', function ($compile) 
{ 
return { 
restrict: 'E', 
scope: true, 
transclude: true, 
templateUrl: 'directive.history.html', 
scope: { 
rightstylus: "@", 
}, 
... 

我的問題是,當多次將相同的指令添加到相同的頁面時,它們的範圍變得相同。當我在2st指令中更改$ scope.stylusright [1]時,它也會更改所有其他指令。

+0

這是行爲做什麼東西。如果你不想改變這個,只需複製你想要引用的值。 angular.copy($ scope.stylusright [1]),否則你正在做一個引用,並且無論你的指令是否在每次更改$ scope.stylusright [1]值時都會隔離範圍,都會改變你的指令值。 –

回答

0

您的指令代碼看起來不錯,(只有您有重複的範圍鍵)。

承擔這個plunker一看,是類似的,你想與分離範圍指令 plunker

希望它有助於