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プロパティにバインドする入力はチェックボックスです。

仮定を念頭に置いて、あなたのコードで見つけた差し迫った問題の 1 つは、ブール値を使用する必要があるときに、文字列値"checked"をプロパティに割り当てていることです。checkedチェックボックス入力の双方向バインディングは、ブール値のみで機能します。

全体像を見ることができないため、それがあなたのコードの唯一の問題であるかどうかはわかりません。あなたが提供した情報に基づいて、動作するplunkrを作成しました。users上記の前提でオブジェクトを生成するために、3 つのユーザー ID のオブジェクトを割り当てただけであることに注意してください。それをコードと比較し、他に考えられる問題がある場合は特定します。コードに他のエラーが見つかった場合は、必ず報告してください。新規参入者にとっては良いことかもしれません。

于 2013-04-17T17:09:43.390 に答える