0

私は AngularJs の初心者で、

$resource でフォームプロジェクトを作ろうとしていますが、

複数のチェックボックスの値を取得して設定するアイデアはありません

モデルに、しかし、私のチェックボックスの値が空であることを示すエラーがあります

サービス ?

ここに私のコードがあります

<dd ng-repeat="user in User.user" >
  <input name="userName[user.userId][]" type="checkbox" ng-model="newProgram.program.managerId" 
    value="{{user.userId}}" check="model" />
    {{user.userUsername}}
</dd>


angular.module('elnApp')
  .directive('check', function () {
  return {
    require: 'ngModel',
    scope: { model: '=check', value: '@' },
    link: function(scope, elm, attr, ngModelCtrl, $filter){ 
        elm.bind('click', function() {
          scope.$watch('newProgram.program.managerId', function (value){
              if(value == true){
                var checkValue = scope.value;
                var brands = [];
                brands.push(checkValue);
                ngModelCtrl.$setViewValue(brands);
                scope.$apply();

              }


          });
        });
      }
   }

 });

私はそれについてとても混乱しています。

4

1 に答える 1

0

あなたのコードには、これから指摘する問題以外にも問題があるかもしれませんが、私が気づいた間違いの 1 つはelm.bind('click', ...)link関数で使用すべきではないということです。コードの書き方では、要素がクリックされるまで監視は設定されませんが、最初から監視を設定する必要があります。

no を指定せずに関数scope.$watch内から実行するだけで、改善が見られるはずです。つまり、リンク関数は次のようになります。linkelm.bind

link: function(scope, elm, attr, ngModelCtrl, $filter) { 
        scope.$watch('newProgram.program.managerId', function (value) {
          if (value == true) {
            var checkValue = scope.value;
            var brands = [];
            brands.push(checkValue);
            ngModelCtrl.$setViewValue(brands);
            scope.$apply();
          }
        });
      });

あなたがやりたいことの残りの部分を完全には理解していません(「フォームの値をサービスに取得する」ことは、私にはあまり明確ではありません-jsfiddleまたはplunkerの例を見ると、はるかに理解しやすいでしょう)、これは私があなたに与えることができるすべての助け。役に立つことを願っています。

于 2013-08-19T06:05:33.350 に答える