隔离作用域中的4种数据绑定策略 - fanghm/angularjs_notes GitHub Wiki
-
=
or=attr
: 隔离作用域的属性与父作用域的属性进行双向绑定,任何一方的修改均影响到对方,这是最常用的方式; -
@
or@attr
: 隔离作用域的属性与父作用域的属性进行单向绑定,即隔离作用域只能读取父作用域中的字符串值:父作用域中属性的变化,在隔离作用域中会同步变化,而隔离作用域中的绑定变化,父绑定是不知道的。 -
&
or&attr
: 以函数的方式读写父作用域的属性;当 directive 中有什么动作需要更新到父 scope 中的时候,可以通过这种方式调用父scope (如controller)中的函数。
app.controller("myController", function ($scope) {
$scope.value = "hello world";
$scope.click = function () {
$scope.value = Math.random();
};
}).directive("isolatedDirective", function () {
return {
scope: {
action: "&"
},
template: '<input type="button" value="在directive中执行父scope定义的方法" ng-click="action()"/>'
}
})
<
: 单向数据绑定,Angular 1.5开始引入
Reference: https://www.ibm.com/developerworks/cn/opensource/os-cn-AngularJS/index.html