0

我正在尝试为 Angular 创建一个服务,该服务应该从生成 json 的 php 获取数据。现在我的服务看起来像这样

fixEvents.service('contactService', function($http, $q) {
    this.getallContact = function() {
        var json = $q.defer();
        $http.get('models/contact.getall.json')
            .success(function(data) {
                json.resolve(data);
            })
            .error(function() {
                json.reject();
            });
        return json.promise;
    };
});

我的控制器看起来像这样

fixEvents.controller('contactCtrl', function($scope, contactService) {
    $scope.title = "CONTACT";

    $scope.jsonContact = contactService.getallContact();

    $scope.showMessage = function() {
        alert($scope.jsonContact.length);
    }
});

问题是我的 jsonContact 没有得到任何结果。它似乎是未定义的。我做错了什么吗?顺便说一句,有没有更好的方法来做到这一点?谢谢你,丹尼尔!

4

1 回答 1

1

您必须.then在控制器中使用 back 来处理数据:

var jsonContactPromise = contactService.getallContact();
jsonContactPromise.then(function(data) {
    $scope.jsonContact = data
}, function(error) {
    console.log("ERROR: " + error);
});
于 2013-10-03T18:18:37.377 回答