【发布时间】:2015-02-12 11:39:41
【问题描述】:
我有一个应该检查所有复选框的复选框。该复选框通过检查所有复选框来正常工作,但是角度不认为它们已被选中?角度知道它们是否被检查的唯一方法是我是否手动检查每一个。 (括号和for循环是来自laravel的刀片php)
<label class="checkbox-inline">
<input type="checkbox" ng-model="everyoneCheck"/> Everyone
</label>
@foreach($company->users as $tagIndex => $user)
<label class="checkbox-inline">
<input type="checkbox" ng-checked="everyoneCheck" ng-model="newDiscussion.notify_partners[{{$tagIndex}}]" ng-true-value="{{$user->id}}" /> {{ $user->first_name }} {{ $user->last_name }}
</label>
@endforeach
点击提交按钮后,我继续 $http.post 到我的服务器,我只是将一个对象传递给 post 函数,这就是对象。
var discussionData = {
'title': $scope.newDiscussion.title,
'discussion': $scope.newDiscussion.summary,
'company_id': company_id,
'notify_partners': $scope.newDiscussion.notify_partners
};
由于某种原因,当我使用检查所有方法时,notify_partners 中没有任何内容,但是当我手动单击每个复选框时,它们将被正确输入和提交。
有什么帮助吗?我觉得它是某种绑定问题,我只需要告诉 Angular,嘿,它更新了!
【问题讨论】:
-
使用 ng-checked 只会更新视图,不会更新模型
-
这是有道理的,为什么它不起作用,有更好的方法吗?
-
是的,创建一个函数并循环模型值(请参阅下面的答案)
标签: javascript php angularjs laravel checkbox