2013-08-18 62 views
0

我是新手与AngularJs和,复选框设置模型值不变

我特林让与$资源形式的项目,

我没有anyideas得到多个复选框值,并将其设置

来模型,但有一个错误显示我的复选框的值为空从

服务?

这里是我的代码

<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(); 

       } 


      }); 
     }); 
     } 
    } 

}); 

我很困惑的是,任何人的想法?

+1

你可以把一个jsfiddle或plunker放在一起吗?我对你想做什么感到困惑。 –

+0

你想让你的指令完成什么? – Galdo

+0

我正在做形式,并获得形式价值服务 – user2680731

回答

0

您的代码可能存在其他问题,而不是我要指出的问题,但我注意到的一个错误是您不应该在link函数中使用elm.bind('click', ...)。您的代码编写方式只有在单击元素后才能设置,但您确实希望腕表从头开始设置。

link函数内部运行scope.$watch函数,没有elm.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上看到一个例子会更容易理解),所以这是我可以给你的所有帮助。我希望这是有用的。