私はかなり奇妙な問題を抱えた Ember.js アプリを持っています。
Ember のルーター経由でページに移動すると壊れるページがありますが、直接読み込まれた場合は壊れません。この場合、buy/credit_card/index
http://localdev/#/buy/credit_card
ブラウザに直接ロードすると、ページは正常に機能します。
ブラウザーに読み込みhttp://localdev/
、すぐに移動できるリンクをいくつかクリックすると、#/buy/credit_card
次のエラー メッセージが表示されます。
アサーションに失敗しました: パス 'App.OrderCalculatorView' でビューが見つかりません アサーションに失敗しました:
App.OrderCalculatorView () ではなく #view ヘルパーにビューを渡す必要があり
ます
問題のビューのテンプレート (の関連部分) は次のようになります。
<h3>Pay order with credit card</h3>
<p>Description here</p>
<form>
{{log App.OrderCalculatorView}}
{{view App.OrderCalculatorView}}
<label>
これが失敗するたびに、{{log App.OrderCalculatorView}}
は undefined を返します。
の定義はApp.OrderCalculatorView
、アプリの残りの部分と同じファイルにあり、ルーターの前に配置されます。次のようになります。
App.OrderCalculatorView = Ember.View.create({
templateName: 'order/calculator',
});
アプリのすべての JavaScript コードは同じapp.js
ファイルにあり、すべてのテンプレートはそのindex.html
ファイルにあり、それらは静的ファイルとして提供されます (この場合は nginx によって)。他のケースではありません。Ember.View.create()
戻ってくる場合はありundefined
ますか?または、この動作の説明として他に何が考えられますか?