Angular-UI-路由器解析不起作用

齐亚

我遇到了这个问题,当我在Angular-ui-router中使用resolve时,导致我的站点每秒执行数百个get请求,但未加载视图。我正在使用完整的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();
                }]
            }
        })

如果我不使用解析,则页面会很好,它将加载。

编辑:我把它归结为我编写的代码是针对角度版本<= 1.4的,因此我需要使用.then而不是.success,但是当我使用.then时,我不会得到该工厂应该使用的持久数据去做。

因此,新问题是,我应该只使用angularJs 1.4还是尝试/获得帮助以将其转换为1.6?感谢所有答案,谢谢。

拉梅什·帕帕甘蒂(Ramesh Papaganti)

与其直接返回$http promise对象,不如将promise对象带入一个变量并将其返回。请尽我所能,它对我有用。

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

            },
        function(data) {

            });
 return promise;

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

  1. 文献资料

  2. 其他资源

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章