使用angularjs控制器将数据绑定为样式

时间:2014-06-26 12:55:49

标签: javascript angularjs binding syntax angularjs-scope

我正在搜索如何在angularjs中使用双重数据绑定,尊重Google推荐的controller as style。它看起来像:

hello.mainpage.HomeCtrl = function() {
  /**
   * @type {string}
   * @export
   */
  this.myColor = 'blue';
};

因为我无法使用$scope.$watch$scope.keypress。最好的方法是什么?

1 个答案:

答案 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 中得到了很好的说明。