【问题标题】:Angular-UI-router resolve not workingAngular-UI-router 解析不起作用
【发布时间】:2017-02-10 11:29:05
【问题描述】:

我遇到了这个问题,当我在 Angular-ui-router 中使用 resolve 时,会导致我的站点每秒执行数百个获取请求但不加载视图。我正在使用完整的 MEAN 堆栈。

视图是使用内联模板创建的,例如:

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

然后在&lt;ui-view&gt;标签中使用。

请看这段代码:

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,页面很好,它会加载。

编辑: 我把它归结为我写的代码是针对角度版本

这么新的问题,我应该继续使用 angularJs 1.4 还是尝试/获得帮助将其转换为 1.6?感谢所有答案,谢谢。

【问题讨论】:

    标签: javascript angularjs routing angular-ui-router mean-stack


    【解决方案1】:

    不是直接返回$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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2015-07-05
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      相关资源
      最近更新 更多