簡體   English   中英

Angular-UI-router解決不起作用

[英]Angular-UI-router resolve not working

我遇到了這個問題,當我在Angular-ui-router中使用resolve時,我的網站每秒會執行數百次獲取請求但不加載視圖。 我正在使用完整的MEAN堆棧。

使用內聯模板創建視圖,例如:

    <script type="text/ng-template" id="/home.html">......</script>

然后在<ui-view>標簽中使用。

請看這段代碼:

app.factory('posts', ['$http', function($http) {
    var o = {
        posts: []
    };
    o.getAll = function() {
      return $http.get('/posts').success(function(data){
        angular.copy(data, o.posts);
      });
    };
    return o;
}]);

app.config([
    '$stateProvider',
    '$urlRouterProvider',

    function($stateProvider, $urlRouterProvider) {
        $stateProvider
        .state('home', {
            url: '/home',
            templateUrl: '/home.html',
            controller: 'MainCtrl',
            resolve : {
                postPromise : ['posts',
                function(posts) {
                    return posts.getAll();
                }]
            }
        })

如果我不使用Resolve,頁面很好,它會加載。

編輯:我已經把它歸結為我寫的代碼是角度版本<= 1.4因此我需要使用.then而不是.success,但是當我使用。然后我不會得到工廠的持久數據去做。

所以新的問題,我應該繼續使用angularJs 1.4或嘗試/獲得幫助將其轉換為1.6? 感謝所有答案,謝謝。

而不是直接返回$http promise對象,將promise對象轉換為變量並返回它。 請做休閑,它對我有用。

 var promise = $http.get('posts');
     promise.then(function(response) {

            },
        function(data) {

            });
 return promise;

請注意successerror回調在angular 1.6中已棄用, then使用。

  1. 文檔

  2. 其他資源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM