[英]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>
在其中,我具有可以使用復選框選擇的項目列表。 ng-change的功能是這樣的:
$scope.changeItemSelected = function(item) {
$scope.itemSelected = item.name;
};
控制器啟動時,我致電了一個服務,該服務之前已檢查了數據。 因此,如果數據不是不確定的(這意味着在檢查之前),則將此itemSelection設置為true。 如您所見,此變量用於ng-init。 它正在工作,但不是太多。 這樣,它選擇了所有復選框,而不是我想要的復選框。 我無法重現init調用。 我通過這種方式通過http://jsfiddle.net/2f6qscrp/225/創建了一個jsfiddle,嘗試認為當jsfiddle啟動時,它會觸發對服務器的調用以獲取之前選擇的項之一。 例如,我要選擇列表的第三項。 因為服務器返回的第三個數據是這樣的:
{"data":{orange},"meta":{"code":200}}
這樣的東西
在這里,我在ng-init
調用了一個checkItem()
函數:
<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
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.