AngularJS:模型不在控制器范围内更新

Nei*_*arb 5 javascript angularjs

我有以下控制器:

app.controller('MyCtrl', function($interval, $scope) {
    $scope.foo = 2;
    $interval(function() {
        console.log($scope.foo);
    }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

以下代码在我看来:

<input type="text" ng-model="foo" />
Run Code Online (Sandbox Code Playgroud)

当我加载页面时,输入正确填充值"2".但是,如果我更改输入中的值,控制台将继续记录"2"(不带引号).

我用了一个$interval只是为了说明 - $watch()回调只发射一次,然后再也没发生过.如果我ng-change=""在输入上使用,那么$scope.foo在回调中总是等于2.

我究竟做错了什么?

Ani*_*bhi 12

如果您使用的NG-模式,你必须有一个点在那里.

通过创建这样的对象来绑定模型

调节器

$scope.form={
   foo:0
};
Run Code Online (Sandbox Code Playgroud)

视图

<input type="text" ng-model="form.foo" />
Run Code Online (Sandbox Code Playgroud)

  • 有时在控制器范围的上层有角度推动范围.如果将直接变量绑定到模型中,则可以将此变量添加到当前范围的新添加范围中.但是如果你使用bind by object属性,那么任何范围都可以按角度推动,对象之间的关系不会破坏 (2认同)
  • 你救了我的时间兄弟。 (2认同)