2014-09-29 264 views
0

嗨我需要在我的控制器加载之前解决链接诺言。根据:https://github.com/angular-ui/ui-router/wiki它应该是可能的。我有类似的东西:角度ui路由器解决不解决链接的承诺

usersInit: function (Restangular) { 
     return $.get(Restangular.configuration.baseUrl+"/users?limit=1").then(function(data){ 
       var total = data.total; 
       return Restangular.all('users').getList({page: 1, limit: total}); 
     }) 
} 

而且几乎一切似乎都很正常,我得到通过restangular所有记录(这是我想才达到的,因为我的默认设置restangular返回20条),但对象返回Restangular.all('users')。getList在我的控制器中没有解析。

任何建议有什么不对?或者,也许还有其他方式可以在不违背承诺的情况下运作。我不能使用硬编码的上限,因为理论上我可以有更多的记录。

+0

将所有移动到服务或工厂双重返回不起作用 – sbaaaang 2014-09-29 09:51:33

回答

1

这为我工作:

usersInit: function ($q) { 
        var promise = $q.when($.get(Restangular.configuration.baseUrl+"/users?limit=1")); 
        promise = promise.then(function (result) { 
        promise = Restangular.all('users').getList({page: 1, limit: total}); 
        promise = promise.then(function(list) { 
         return list; 
        }); 
        return promise; 
        }); 
        return promise; 
       } 
    } 

我希望这有助于。