私はEmberアプリケーションの保存済み検索機能に取り組んでいます。一般的な考え方は、検索を実行した後、検索の短縮名を入力して保存し、localStorage
後でドロップダウンリストから取得するオプションがあるということです。現在のURLを他のユーザーと共有し、同じ検索を表示させることができます。
これは、URLの検索パラメータを処理するEmberRouter
と、ユーザーが「保存」をクリックするのを処理するビューの組み合わせによって機能します(ビューはフィドルに含まれていますが、テンプレートが含まれていないため実行できません-以下を参照してください)。
アプリケーションを実行するたびに、次のエラーが発生します。
Uncaught TypeError: Cannot call method 'set' of undefined
以下にリストされているフィドルでトレースを見ることができますが、それはember-dataのコントローラーストアインジェクションに由来しているように見えます。残念ながら、Ember [-data]に関する私の知識は、これがアプリケーションの他の部分とどのように関連しているかを知るには十分ではありません。
独立して動作するはずのアプリケーションの関連部分を取得し、JSFiddleで実行しましたが、それでも同じエラーが発生します。フィドルはhttp://jsfiddle.net/fetcU/にあります。現在、ハンドルバーテンプレートなどは問題の原因ではないため、そのフィドルには何もありません。
localStorage
ルーターが導入されるまで、アダプターとその他の部分は独立して正常に機能していたため、現在実行されているコードに関連している可能性があります(Checklist.initialize()
ルーターが追加されるまでは必要ありませんでした)。
私はこれを他の同様のプロジェクトや例、特にember-dataに与えられたものと比較しましたが、ここで何が間違っているのかが完全には明らかではありません。洞察をいただければ幸いです。