如何填写" ion-checkbox ng-repeat"在页面加载时

时间:2014-11-14 17:05:02

标签: angularjs cordova angularjs-ng-repeat ionic-framework

我需要做什么? 我正在尝试在页面加载时自动加载"ion-checkbox ng-repeat" "onDeviceReady"。以下是HTML代码。

        <ion-checkbox ng-repeat="item in devList"
        ng-model="item.checked"
        ng-checked="item.checked">
        {{ item.text }}
        </ion-checkbox>

但只有在触发click事件时才会加载"ion-checkbox ng-repeat"。 以下是angular-js代码,需要在页面加载时自动触发。

问题:在页面加载时,“ion-checkbox ng-repeat”的数据没有填满。 任何人都可以帮助解决这个问题。

  angular.module('app', ['ionic'])

.controller('AppCtrl', function($scope) {
        $scope.devList = [];
window.addEventListener("deviceready", onDeviceReady, true);
        function onDeviceReady() {
        var options = new ContactFindOptions();
        options.filter = "";      // empty search string returns all contacts
        options.multiple = true;  // return multiple results
        filter = ["*"]; // return contact.displayName field
        //document.getElementById("lan").innerHTML = lan;
        // find contacts
        navigator.contacts.find(filter, onSuccess, onError, options);

        }
        function onSuccess(contacts) {

        for (var i = 0; i < contacts.length; i++) {

        $scope.devList[i] = {text:""+contacts[i].name.formatted, emails:{email:""+contacts[i].emails[0].value,checked:false}, phno:{phone:""+contacts[i].phoneNumbers[0].value,checked:false},addres:{address: contacts[i].addresses||[],checked:false},checked: false};
        $scope.emails[i] = {email:""+contacts[i].emails[0].value+""};
        }

        }
        function onError(contactError) {
        alert('onError!');
        }

}

1 个答案:

答案 0 :(得分:4)

如果您在角度上下文之外执行任何操作,则需要调用$ apply

 function onSuccess(contacts) {

        for (var i = 0; i < contacts.length; i++) {

        $scope.devList[i] = {text:""+contacts[i].name.formatted, emails:{email:""+contacts[i].emails[0].value,checked:false}, phno:{phone:""+contacts[i].phoneNumbers[0].value,checked:false},addres:{address: contacts[i].addresses||[],checked:false},checked: false};
        $scope.emails[i] = {email:""+contacts[i].emails[0].value+""};
        $scope.$apply();
        }

        }