2014-09-29 133 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; 
       } 
    } 

我希望這有助於。