无法使用promise绑定到角度存储库数据

时间:2014-05-22 01:23:48

标签: javascript json angularjs repository q

我试图将资源库模式与Angular一起使用。当我调用我的存储库时,我可以看到json是通过网络返回的。但我无法与它结合。

我将存储库注入模块......出了什么问题?

blogApp.factory('blogEntryRepository', function ($http, $q) {
    return {
        get: function() {
            var deferred = $q.defer();
            $http.get('/blogentry').success(deferred.resolve).error(deferred.reject);
            return deferred.promise;
        }
    }
});


blogApp.controller("HomeCtrl", function($scope, blogEntryRepository) {
    blogEntryRepository.get().then($scope.blogEntries = blogEntryRepository);
});

<div>
    home  
    <div ng-repeat="blogEntry in blogEntries">
        <div>Asdf
            {{blogEntry.title}}
        </div>
    </div>
</div>

页面输出

home
Asdf
{}

json响应是

[{"title":"Launched an AngularJS 1.2 site!","date":"2014-05-21T00:00:00"},{"title":"Title2","date":"2014-05-22T00:00:00"}]

它位于ng-app标记内。页面上有一个ng-view标签。

我可以确认我可以绑定到硬编码变量。

使用Angular 1.2

1 个答案:

答案 0 :(得分:1)

尝试

blogApp.controller("HomeCtrl", function($scope, blogEntryRepository) {
    blogEntryRepository.get().then(function(result){$scope.blogEntries = result});
});