我是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();
}
});
});
}
}
});
我对此感到困惑,有什么想法吗?
答案 0 :(得分:0)
您的代码可能存在其他问题,而不是我要指出的问题,但我注意到的一个错误是您不应该在elm.bind('click', ...)
函数中使用link
。编写代码的方式,只有在单击元素之后才会设置手表,但您确实希望手表从一开始就设置好。
只需从您的scope.$watch
功能中运行link
,而不是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的例子会更容易理解),所以这是我能给你的所有帮助。我希望它有用。