javascript - 使用 angularjs Controller 作为样式的双重数据绑定(bind)

标签 javascript angularjs binding syntax angularjs-scope

我正在搜索如何在 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/

相关文章:

javascript - 在 Google map 中绘制折线的圆圈

javascript - Node , Angular 错误 : ENOENT: no such file or directory

wpf - 如何在WPF DataGrid中实现可编辑的DataGridComboBoxColumn

c# - 只有数据模板列中的最后一个控件得到更新

R:数字向量在日期的 cbind 后变为非数字

javascript - 将多个变量导出为一个

javascript - 尝试将 templateUrl 作为变量结果 $digest 已经在直接进行中

javascript - 加载 AngularJS 时隐藏元素 HTML

angularjs - 服务器/客户端的 Git 架构不错吗?

javascript - 数字()与新数字()?