emberjs.comに表示されるように検索フィールドを再現しようとしましたが、何らかの理由で、クエリを入力して Enter キーを押すか送信ボタンをクリックすると、コードで次のエラーが発生し続けます (Google Chrome で):
Uncaught Error: Nothing handled the event 'MyApp.ApplicationController.doSearch'.
私が取り組んでいるコードはhttp://jsfiddle.net/Mn2yy/で見ることができます
このエラーが発生する理由と、それを解決するために何をする必要があるかを誰かが説明できますか?
編集:リンクがダウンした場合、これらはコードの関連部分です:
検索ページ ルート:
MyApp.SearchRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('searchQuery', this.get('query'));
},
renderTemplate: function() {
this.render('searchpage', { into: 'container' });
}
});
アプリケーションコントローラー:
MyApp.ApplicationController = Ember.Controller.extend({
// the initial value of the `search` property
search: '',
doSearch: function() {
// the current value of the text field
var query = this.get('search');
this.transitionToRoute('search', { query: query });
}
});
そしてテンプレート:
<script type="text/x-handlebars" data-template-name="container">
<button {{action "doSearch" target="MyApp.ApplicationController"}} rel="tooltip-bottom" title="search" class="icon"><i class="icofont-search"></i></button>
{{view Ember.TextField valueBinding="MyApp.ApplicationController.search" action="MyApp.ApplicationController.doSearch"}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="searchpage">
<h1>Search</h1>
{{#linkTo "home"}}Homepage{{/linkTo}}
<p>You searched for: "{{searchQuery}}"</p>
</script>