我正在搜索如何在 angularjs 中使用双重数据绑定(bind),尊重 controller as style谷歌推荐。它看起来像:
hello.mainpage.HomeCtrl = function() {
/**
* @type {string}
* @export
*/
this.myColor = 'blue';
};
因为我无法使用 $scope.$watch
或 $scope.keypress
。最好的方法是什么?
最佳答案
双向数据绑定(bind)是 Angular“魔法”的一部分,也是 Angular 自动保持 View 与模型同步的过程。如果您使用带有 $scope 的“正常” Controller 语法或不带作用域的“controller as”语法,那么应该没有任何区别。双向数据绑定(bind)的工作方式完全相同。
例如:
“ Controller ”+“$范围”:
<div ng-controller="someCtrl">
<input type="text" ng-model="someStr" />
</div>
.controller('someCtrl', function ($scope) {
$scope.someStr = 'Hello, world !';
});
双向数据绑定(bind)照常工作。
<小时/>“ Controller 为”+“无$范围”:
<div ng-controller="someCtrl as ctrl">
<input type="text" ng-model="ctrl.someStr" />
</div>
.controller('someCtrl', function () {
this.someStr = 'Hello, world !';
});
双向数据绑定(bind)在这里也有效。
<小时/>另一方面,如果你想$watch
某些东西,那么你需要一个$scope
(“controller as”语法并不禁止你使用)。
以上所有内容都在这个 short demo 中得到了很好的说明。 。
关于javascript - 使用 angularjs Controller 作为样式的双重数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24431140/