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