3

我正在遍历结果集并动态创建模型值,例如:

     angular.forEach(users, function(user) {
           $scope.usersModels.online[user.id] = 0;
           $scope.usersModels.online[user.id]['checked'] = 'checked';
           $scope.$watch('usersModels.online[user.id]', function(val) {
                  console.log(val);

           });
     });

我也在尝试观察这些模型的变化并获得价值。但是,这不起作用,有什么想法吗?

谢谢!

编辑:

angular.forEach(users, function(user) {
       $scope.usersModels.online[user.id] = {};
       $scope.usersModels.online[user.id]['value']   = 0;
       $scope.usersModels.online[user.id]['checked'] = 'checked';
       $scope.$watch(function() {
            return $scope.usersModels.online[user.id]['value'];
       }, function(val) {
            console.log(val);
       });
 });
4

1 回答 1

1

您提供的代码并没有给我们一个完整的画面。一些缺失的部分是:

  • 填充users对象的代码
  • 显示如何将输入绑定到模型的视图代码

因此,我需要做一些假设:

  • 填充users对象的代码不是问题的原因。
  • 绑定到checked属性的输入是一个复选框。

考虑到这些假设,我在您的代码中发现的一个直接问题是,当您应该使用布尔值时,您将字符串值 , 分配给属性"checked"checked复选框输入的双向绑定仅适用于布尔值。

由于我没有看到完整的图片,我很难说这是否是您的代码的唯一问题。根据您提供的信息,我创建了一个工作plunkr。请注意,我只是分配了一个具有三个用户 ID 的users对象来生成具有上述假设的对象。将其与您的代码进行比较并确定其他可能的问题(如果有)。如果您在代码中发现其他错误,请务必报告,因为它可能对新手有好处。

于 2013-04-17T17:09:43.390 回答