首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导致无限循环的Angular-ui-router

导致无限循环的Angular-ui-router
EN

Stack Overflow用户
提问于 2017-01-17 04:52:08
回答 1查看 236关注 0票数 2

我正在尝试使用本教程https://thinkster.io/tutorials/mean-stack/wiring-everything-up学习angular,但我遇到了一个问题,即打开应用程序时会陷入调用/posts url的无限循环。我已经与邮递员检查了我的路线,它们工作正常,所以我不确定为什么这不能正确解决。下面是“post”服务、“mainCtrl”控制器和配置。如果他们看到我的错误,或者如果我需要提供更多的代码来帮助他们,能不能有人看一下并告诉我。谢谢。

服务

代码语言:javascript
复制
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;

}])

控制器

代码语言:javascript
复制
app.controller('MainCtrl', ['$scope', 'posts', function($scope, posts){
$scope.test = 'Hello world!';

$scope.posts = posts.posts;

$scope.addPost = function(){
    if(!$scope.title || $scope.title === '') { return; }
    $scope.posts.push({
      title: $scope.title,
      link: $scope.link,
      upvotes: 0,
      comments: [
        {author: 'Joe', body: 'Cool post!', upvotes: 0},
        {author: 'Bob', body: 'Great idea but everything is wrong!', upvotes: 0}
      ]
    });
    $scope.title='';
    $scope.link='';
}

$scope.incrementUpvotes = function(post) {
  post.upvotes += 1;
};

}]);

配置

代码语言:javascript
复制
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();
        }]
      }
    })
    .state('posts', {
        url:'/posts/{id}',
        templateUrl:'/posts.html',
        controller:'PostsCtrl'
    })

$urlRouterProvider.otherwise('home');
}])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 09:48:37

我将用一个对我部分有效的解决方案来结束这个问题。我之所以这么说,部分原因是我不再经历无限循环,但如果有人在做教程时遇到这个问题,他们最终会遇到一个新问题,单击submit确实会创建一个新帖子,但数据不在那里。在刷新后,您将获得您正在寻找的结果,但我还没有解决这个新问题。

无限循环的解决方案是在服务函数中使用它

代码语言:javascript
复制
return $http.get('/posts').then(function(data){
        angular.copy(data.data, o.posts);
    });

本教程要求的成功语法不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41684803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档