我知道已经有几个类似的主题,但我没有发现与我的问题真正匹配的问题。根据两个对象数组显示与AngularJS中的复选框
当打开我的AngularJS应用程序/网站时,我加载两个对象数组(都是相同类型)。一个列表包含所有可能的值(这里称为源),另一个列表是第一个元素的选择。
我的目标是将所有来源显示为复选框。第二个列表中的那些必须预先选定,其余的不是。现在用户可以选择/取消选择复选框。如果他这样做,我需要通知服务器(使用source.id)。
我走到这一步:
exampleApp.controller('testController', [ '$scope', '$http', function($scope, $http) {
$scope.sources = [];
$scope.selectedSources = [];
$scope.changeSource = function(source) {...};
})
和
<div ng-repeat="source in sources">
<input
type="checkbox"
name="source.name"
value="{{source.id}}"
ng-model="??"
ng-change="changeSource(source.id)"
> {{source.name}}
</div>
我不出来什么是我能得到NG-模型预选正确的复选框,以及如何获得将新(和旧)值更改为changeSource()。有没有一个优雅的方式来做到这一点?
例(伪代码只):
Sources = [{id=1, name=test1},{id=2, name=test2}, ...]
SelectedSources = [{id=2, name=test2}]
现在我需要的是复选框这样的:
[ ] test1 [x] test2
,其中来自源的所有元素的复选框,并从selectedsources的那些被预先选择。选择的更改可以存储在选定的源(作为对象)中,并且必须触发我的changeSource()函数,以便通知我的服务器。
最简单的方法来处理这个问题是使用一个单一的数组与每个项目与它的选定状态相对应的额外领域。这是什么东西可以在你的情况下工作? – Claies