2017-02-27 11 views
0

最近、私はレール+角チュートリアルでルビーを通過しようとしました。これまでhttps://thinkster.io/tutorials/angular-rails/wiring-everything-up角度+レール5(フラッパーニュース) - 無限ループエラー

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

このチュートリアルでは、レール-4と一緒に行くように設計されて私が捕まってしまった

場所。私はレール5でそれを構築し始めました。

これまでのところ、私は今まで問題はありませんでした。

私は奇妙な問題に立ち往生しました。アプリの既存の状態をレールのバックエンドでワイヤリングしようとしています。すべてのレコードを取得するメソッド - フロントとバック(最後のコミット)を結合する最初のステップの1つは、 "posts.json"からデータを受け取ろうとするループです。最終的にブラウザがクラッシュします(firefox、chrome - 最近のバージョン)。

localhost:3000/posts.json用量をjsonにします。

私は他の人々のリポジトリと比較してコードを調べましたが、混乱していないかどうかを確認するためにコードを調べましたが、それでも何が間違っているかは見つかりませんでした。この時点で、私はこの動作の理由は何か分かりません。

APP.js:

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ファイル:

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

答えて

0

それは(この時点では1.6.2)

//= require angularを介して提供される角度のバージョンを結局のところ

ので、設定を変更し、行を削除し、また初期のスクリプトタグを含む:application.html.erbファイル内

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script> 

は私も同じ問題を抱えているので、問題

+0

あなたはこの答えを続けていく場合は、それはそれはあなたが現在の角度のバージョンを使用することができますため、2番目の答えは良いです:)であるとチュートリアルを通過することができるようになります。しかし、おそらくチュートリアルのいくつかの問題が発生します。 –

0

このポストを見つけ修正します1.6.xを引き続き使用できるソリューションを見つけることができました。 this pageによると、success()およびerror()メソッドは非推奨になり、then()およびcatch()に置き換えられました。ですから、私はsuccess()呼び出しを自分のコードでthen()に変更しました。それは私のために正しく動作しています。

posts.js:

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

お返事ありがとうございます:)これで私たちは資産を管理するための道を歩み続けることができます。 –

関連する問題