首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular + rails 5(扑翼新闻)-无限循环错误

angular + rails 5(扑翼新闻)-无限循环错误
EN

Stack Overflow用户
提问于 2017-02-27 19:06:17
回答 2查看 184关注 0票数 0

最近我尝试了一个ruby on rails + angular教程。

我被困在的地方:https://thinkster.io/tutorials/angular-rails/wiring-everything-up

目前:https://github.com/grfx1985/angular-rails-example

本教程是针对rails-4设计的。我已经开始在rails-5上构建它。

到目前为止,我还没有遇到任何问题。

我被一个奇怪的问题卡住了。尝试将应用程序的现有状态与rails后端连接起来。获取所有记录的方法-将前面和后面(最后一次提交)结合在一起的第一步之一是循环自身,试图从"posts.json“接收数据。最终导致浏览器崩溃(firefox、chrome -最新版本)。

localhost:3000/posts.json渲染json。

我查看了代码,并将其与其他人的存储库进行了比较,以查看是否混淆了某些内容,但仍然无法找到错误所在。在这一点上,我不确定是什么原因导致了这种行为。

APP.js:

代码语言:javascript
复制
angular.module('flapperNews', ['ui.router', 'templates'])
.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
  $stateProvider
    .state('home', {
      url: '/home',
      templateUrl: 'home/_home.html',
      controller: 'MainCtrl',

      commented below app works: 
      -------------
      resolve: {
        postPromise: ['posts', function(posts){
          return posts.getAll();
        }]
        }
      -------------
    })
    .state('posts', {
      url: '/posts/{id}',
      templateUrl: 'posts/_posts.html',
      controller: 'PostsCtrl'
    })
  $urlRouterProvider.otherwise('home');
}])

posts.js文件:

代码语言:javascript
复制
angular.module('flapperNews')
.factory('posts', ['$http', function($http){
  var o = {
    posts: []
  };
  ---- this is not working ----
  o.getAll = function() {
        return $http.get('/posts.json').success(function(data){
        angular.copy(data, o.posts);
    });
  };
  -----------------------------

  o.create = function(post) {
    return $http.post('/posts.json', post).success(function(data){
      o.posts.push(data);
    });
  };

  return o;
}]) 
EN

回答 2

Stack Overflow用户

发布于 2017-03-23 01:45:11

事实证明,angular的版本通过

//= require angular (此时为1.6.2)

为您提供最新的

因此,更改设置并删除行,还包括初始脚本标记:

代码语言:javascript
复制
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>

application.html.erb文件中修复了这个问题

票数 0
EN

Stack Overflow用户

发布于 2017-04-16 00:05:25

我找到这篇文章是因为我也有同样的问题,并设法找到了一个允许你继续使用1.6.x的解决方案。根据this page的说法,success()和error()方法已被弃用,取而代之的是then()和catch()。因此,我在代码中将success()调用更改为then(),并且它对我来说工作正常。

posts.js:

代码语言:javascript
复制
angular.module('flapperNews')
    .factory('posts', [
        '$http',
        function($http) {
            var o = {
                posts: []
            };
            o.getAll = function() {
                return $http.get('/posts.json').then(function(data) {
                    angular.copy(data, o.posts)
                })
            };
            return o;
        }
    ]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42484202

复制
相关文章

相似问题

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