我正在搜索如何在angularjs中使用双重数据绑定,尊重Google推荐的controller as style。它看起来像:
hello.mainpage.HomeCtrl = function() {
/**
* @type {string}
* @export
*/
this.myColor = 'blue';
};
因为我无法使用$scope.$watch
或$scope.keypress
。最好的方法是什么?
答案 0 :(得分:2)
双向数据绑定是Angular“神奇”的一部分,是Angular自动保持视图与模型同步的过程。如果您使用带有$ scope的“普通”控制器语法或没有范围的“控制器为”语法,则应该没有任何区别。双向数据绑定的工作方式完全相同。
E.g:
“控制器”+“$ scope”:
<div ng-controller="someCtrl">
<input type="text" ng-model="someStr" />
</div>
.controller('someCtrl', function ($scope) {
$scope.someStr = 'Hello, world !';
});
双向数据绑定照常工作。
“控制器为”+“无$ scope”:
<div ng-controller="someCtrl as ctrl">
<input type="text" ng-model="ctrl.someStr" />
</div>
.controller('someCtrl', function () {
this.someStr = 'Hello, world !';
});
双向数据绑定也适用于此。
另一方面,如果你想$watch
某事,那么你需要一个$scope
(“控制器为”语法并不禁止你使用)。
上述所有内容都在 short demo 中得到了很好的说明。