在 ng-repeat 上初始化复选框 angularjs
Init checkbox angularjs on ng-repeat
我遇到了这种情况:
<md-subheader class="md-no-sticky">
<span data-ng-if="itemSelected == undefined || itemSelected == ''">Choose</span>
<span data-ng-if="itemSelected != '' || itemSelected != undefined">{{itemSelected}}</span>
</md-subheader>
<md-list-item ng-repeat="item in items">
<p> {{item.name}} </p>
<md-checkbox class="md-secondary" ng-init="itemSelection" ng-model="itemSelection" ng-change="changeItemSelected(item)"></md-checkbox>
</md-list-item>
我在其中列出了您可以 select 使用复选框的项目。
ng-change 上的函数是这样的:
$scope.changeItemSelected = function(item) {
$scope.itemSelected = item.name;
};
当控制器启动时,我调用了一个服务来检查之前的数据。因此,如果数据不是未定义的(这意味着在检查某些内容之前),我将此 itemSelection 设置为 true。如您所见,此变量用于 ng-init。它的工作,但不是太多。通过这种方式,它 select 包含所有复选框,而不是我想要的复选框。我无法重现 init 调用。顺便说一下,我用这种情况创建了一个 jsfiddle
http://jsfiddle.net/2f6qscrp/225/
试着想一想,当 jsfiddle 启动时,它会触发对服务器的调用以获取之前 selected 的项目之一。例如,我想要 select 列表的第三项。因为服务器returns第三个数据是这样的:
{"data":{orange},"meta":{"code":200}}
类似的东西
这里我有一个函数 checkItem()
调用 ng-init
:
<md-checkbox class="md-secondary" ng-init="checkItem(item)"
ng-model="item.checked"
ng-change="changeItemSelected(item)">
</md-checkbox>
此函数检查复选框名称是否对应于从您的服务器返回的对象:
$scope.srvValue = { // Value from your server
"data": "orange",
"meta": {"code": 200}
};
$scope.checkItem = function(item) {
if (item.name == $scope.srvValue.data) { // It matchs!
item.checked = true;
$scope.changeItemSelected(item);
}
else item.checked = false; // It does not
};
JSFiddle demo
我遇到了这种情况:
<md-subheader class="md-no-sticky">
<span data-ng-if="itemSelected == undefined || itemSelected == ''">Choose</span>
<span data-ng-if="itemSelected != '' || itemSelected != undefined">{{itemSelected}}</span>
</md-subheader>
<md-list-item ng-repeat="item in items">
<p> {{item.name}} </p>
<md-checkbox class="md-secondary" ng-init="itemSelection" ng-model="itemSelection" ng-change="changeItemSelected(item)"></md-checkbox>
</md-list-item>
我在其中列出了您可以 select 使用复选框的项目。 ng-change 上的函数是这样的:
$scope.changeItemSelected = function(item) {
$scope.itemSelected = item.name;
};
当控制器启动时,我调用了一个服务来检查之前的数据。因此,如果数据不是未定义的(这意味着在检查某些内容之前),我将此 itemSelection 设置为 true。如您所见,此变量用于 ng-init。它的工作,但不是太多。通过这种方式,它 select 包含所有复选框,而不是我想要的复选框。我无法重现 init 调用。顺便说一下,我用这种情况创建了一个 jsfiddle http://jsfiddle.net/2f6qscrp/225/ 试着想一想,当 jsfiddle 启动时,它会触发对服务器的调用以获取之前 selected 的项目之一。例如,我想要 select 列表的第三项。因为服务器returns第三个数据是这样的:
{"data":{orange},"meta":{"code":200}}
类似的东西
这里我有一个函数 checkItem()
调用 ng-init
:
<md-checkbox class="md-secondary" ng-init="checkItem(item)"
ng-model="item.checked"
ng-change="changeItemSelected(item)">
</md-checkbox>
此函数检查复选框名称是否对应于从您的服务器返回的对象:
$scope.srvValue = { // Value from your server
"data": "orange",
"meta": {"code": 200}
};
$scope.checkItem = function(item) {
if (item.name == $scope.srvValue.data) { // It matchs!
item.checked = true;
$scope.changeItemSelected(item);
}
else item.checked = false; // It does not
};