使用指令中的独立作用域(isolated scope)来避免在所有指令实例中改变作用域变量的值。具体实现方式如下:
angular.module('myApp').directive('myDirective', function() {
return {
restrict: 'EA',
scope: {
myVar: '='
},
link: function(scope, element, attrs) {
// 此处scope.myVar为指令中定义的独立作用域中的变量,其值不会影响到父作用域中的变量myVar的值
scope.myVar = 'new value';
}
};
});
在上述例子中,我们定义了一个名为myDirective
的指令,并在其中定义了一个独立作用域(scope
属性)。使用双向绑定符号=
来对指令中作用域对象中的myVar
变量和父作用域中的同名变量进行双向绑定。这样,我们在指令中修改myVar
变量的值时,只会改变指令实例中的myVar
值,而不会影响到父作用域中的myVar
值。
上一篇:避免在索引列上应用函数