AngularJS:与$scope和单选按钮交互的混淆

AngularJS:与$scope和单选按钮交互的混淆,angularjs,Angularjs,在这个非常简单的示例中,$scope为什么不改变状态?当我选择每个单选按钮时,我希望看到一条控制台消息,显示作用域的值已更改。这看起来很简单,不知道我遗漏了什么。也就是说,我对angular很陌生,所以如果我做出了不应该这样的假设,请纠正我 HTML: Fiddle:通常在scope属性的名称上设置$watch。因此,我希望看到类似的情况: var app = angular.module('demo', []); app.controller('SampleCtrl', function(

在这个非常简单的示例中,
$scope
为什么不改变状态?当我选择每个单选按钮时,我希望看到一条控制台消息,显示作用域的值已更改。这看起来很简单,不知道我遗漏了什么。也就是说,我对angular很陌生,所以如果我做出了不应该这样的假设,请纠正我

HTML:


Fiddle:

通常在scope属性的名称上设置
$watch
。因此,我希望看到类似的情况:

var app = angular.module('demo', []);

app.controller('SampleCtrl', function($scope) {
  $scope.groupby = 2;

  $scope.$watch('groupby', function () {
    console.log($scope.groupby);
  });
});

下面是一个。

通常在作用域属性的名称上设置
$watch
。因此,我希望看到类似的情况:

var app = angular.module('demo', []);

app.controller('SampleCtrl', function($scope) {
  $scope.groupby = 2;

  $scope.$watch('groupby', function () {
    console.log($scope.groupby);
  });
});
下面是一个示例。

代码应为

var app = angular.module('demo', []);

app.controller('SampleCtrl', function($scope) {
    $scope.groupby = 2;

    $scope.$watch('groupby', function () {
        console.log($scope.groupby);
      });
});
或者,在
$watch
表达式中,可以使用函数而不是名称

$scope.$watch(function () { return $scope.groupby }, function () {
    ...
});
使用函数有很多优点。例如,您可以查看复杂的表达式,而不仅仅是变量。

代码应为

var app = angular.module('demo', []);

app.controller('SampleCtrl', function($scope) {
    $scope.groupby = 2;

    $scope.$watch('groupby', function () {
        console.log($scope.groupby);
      });
});
或者,在
$watch
表达式中,可以使用函数而不是名称

$scope.$watch(function () { return $scope.groupby }, function () {
    ...
});

使用函数有很多优点。例如,您可以观察复杂的表达式,而不仅仅是变量。

我知道这将是一件愚蠢的事情;)谢谢你的回答。我知道这会很愚蠢;)谢谢你的回答。我知道这会很愚蠢;)谢谢你的回答。指定作为第一个参数成为函数的能力的额外提示的答案。非常感谢!我知道这将是一件愚蠢的事情;)谢谢你的回答。指定作为第一个参数成为函数的能力的额外提示的答案。非常感谢!