Angular-UI-router解析不起作用

问题描述:

我得到了这个问题,当我在Angular-ui-router中使用解析时,导致我的站点每秒执行数百次获取请求,但没有加载视图。我正在使用完整的MEAN堆栈。在<ui-view>标签使用Angular-UI-router解析不起作用

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

然后:

的意见与联模板e.g创建。

请看看这段代码:

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(); 
       }] 
      } 
     }) 

如果我不使用的决心,该页面是好的,它加载。

编辑: 我把它写下来,我写的代码是角度版本< = 1.4因此我需要使用.then而不是.success,但是当我使用.then我没有获得持久性数据工厂应该这样做。

所以,新的问题,我应该只留在angularJs 1.4或尝试/获得帮助将其转换为1.6?感谢所有的答案,谢谢。

而不是直接返回$httppromise对象,将promise对象放入一个变量并返回它。请尽量休闲,它对我有用。

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

      }, 
     function(data) { 

      }); 
return promise; 

请注意successerror回调在angular 1.6弃用,请then

  1. Documentation

  2. Other resource