移动到1.2后,Angular $ q.defer中断

时间:2013-11-15 01:05:52

标签: angularjs angularjs-service

我有这个Angular片段在Angular 1.0.8下工作正常。我刚刚切换到1.2现在,虽然我没有看到任何错误,但我在html中没有任何对象。

// --- CONCERNS FACTORY --- //
concernsApp.factory('ConcernService', function ($http, $q) {
    var api_url = "http://localhost:8000/api/";

    var ConcernService = {
        list: function (items_url) {
            var defer = $q.defer();
            $http({method: 'GET', url: api_url + items_url}).
                success(function (data, status, headers, config) {
                    defer.resolve(data);
                }).error(function (data, status, headers, config) {
                    defer.reject(status);
                });
            return defer.promise;
        },
    };
    return ConcernService;
});


// --- PROJECTS CONTROLLER --- //
concernsApp.controller('ProjectsCtrl', function ($scope, $http, ConcernService) {
    // get all projects
    $scope.projects = ConcernService.list('projects/');

    ...

$ http方法仍然有效,数据是成功返回的对象。

我有一种感觉问题是list方法返回一个promise而不是一个对象,但我不确定如何重构我的代码以便它像以前一样工作 - 即$ scope.projects是一个对象。

0 个答案:

没有答案