2016-05-09 1 views
0

私はanglejsをレールでワイヤリングしようとしています。私は私の見解にいくつか問題があります。彼らは、私は/アプリではfirst.html https://github.com/sourabh-garg/vegeta/blob/master/response%20error.htmlなぜ私のhtmlページがレンダリングされていないのですか<ui-view>?

の応答でこれを取得しています[HTTP/1.1 404見つかりませんでした]私の見解は、フェッチされたが、エラーになっている

でレンダリング

を取得されていません私がロードしようとしているassets/templates/first.html

アプリ/ビュー/アプリケーション/ index.html.erbが私のインデックスファイルを持っている

ルートルート 'アプリケーション#インデックス'

App.js

var app = angular.module('myapp', ['ui.router']) 

     .config(function config($stateProvider){ 

     $stateProvider.state("index", { 
     url : "", 
     controller : "FirstCtrl as first", 
     templateUrl : "first.html" 
     }) 

     $stateProvider.state("second", { 
     url : "/second", 
     controller : "SecondCtrl as second", 
     templateUrl : "second.html" 
     }) 

     }) 
     .directive('elem', function() { 
     return { 
      restrict: 'E', 
      templateUrl: "templates/second.html" 
     }; 
     }) 
     .filter('reverse', function(){ 

     return function(text){ 
     return text.split('').reverse().join(''); 
     } 

     }) 
     .service("greeting", function Greeting(){ 

     var greeting = this; 

     greeting.message = "Default"; 
     }) 
     .service('Data', [function() { 

     return {message: "You are a awesome"} 
     }]) 
     .controller('FirstCtrl', function($scope, greeting, Data){ 

     var first = this; 
     first.greeting = greeting; 

     first.data = Data; 

     first.reversed = function(message){ 
      return message.split('').reverse().join(''); 

     }; 

     }) 
     .controller('SecondCtrl', function($scope, greeting){ 

     var second = this; 
     second.greeting = greeting; 
     }); 
+0

は "/秒" まで表示して働いていますか? – Esko

+0

いいえ、そうではありません。私は1つの間違い "templates/first.html"が "first.html"だけであるはずです。それを修正した後でさえ。動いていない。 – scripter

+0

'templateUrl:" templates/second.html "が正しい場所を指していますか?これは 'templateUrl:" /app/assets/templates/second.html "'ではありませんか? – Kyle

答えて

0

あなたの設定関数が不正確に書き込まれました。

.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {

$ stateProviderは2回使用されます。
// Now set up the states

// For any unmatched url, send to /route1 $urlRouterProvider.otherwise("/first");

$stateProvider .state('first', { url: "/first", templateUrl: "first.html" }) .state('second', { url: "/second", templateUrl: "second.html" }); }])

+0

が自動的に検索されるので、「first.html」または「second.html」のみです。これは問題ではありません。私もその機能に名前を付けずに試しました。しかし、それは動作しませんでした。 – scripter

+0

私のビューだけがレンダリングされません。 templateUrlの代わりにtemplateを使用するとうまくいきます。 gem-rails-angular-templateの問題かもしれませんか? – scripter

+0

'$ stateProvider.state(「第二」' あなたは既に '$ stateProvider'を開始した第2の状態が連鎖するべきであるから、' $ stateProvider'を取り外します。 – Esko

1

1)あなたはgem angular-rails-templatesを使用しています。

Angularアプリにテンプレートを注入する必要はありませんか?あなたのファイル構造app/assets/javascripts/、5行目application.jsファイルで
angular.module('myapp', ['ui.router', 'templates'])


2)//= require_tree ../templates//= require_tree .を変更すると、リンクを修正する場合は、参照してください。

リソース:angular-rails-template: include templates in rails assets pipeline

+1

このエラーは、ページが角度アプリケーションのルートエンドポイントではなく、存在しないRailsエンドポイントにリダイレクトされているように見えます –

+0

はいそれでもそれはうまくいきませんでした。私は自分のhtmlファイルをパブリックフォルダに保存しなければなりませんでした。 – scripter

関連する問題