Ember 1.0.0 RC3 は、という名前のハンドルバー ヘルパーを提供します{{input}}
。基になるコントローラーで String プロパティを更新するだけでなく、入力が変更されたときに基になるコントローラーでメソッドを追加で呼び出したいと考えています。
{{input}}
テキストフィールドへの変更後にコントローラーメソッドを呼び出す方法はありますか?
Ember 1.0.0 RC3 は、という名前のハンドルバー ヘルパーを提供します{{input}}
。基になるコントローラーで String プロパティを更新するだけでなく、入力が変更されたときに基になるコントローラーでメソッドを追加で呼び出したいと考えています。
{{input}}
テキストフィールドへの変更後にコントローラーメソッドを呼び出す方法はありますか?
.observes("propertyChangedByInputHelper")
変更に反応する on the controller メソッドを 使用します。
<--Handlebars template -->
<script type="text/x-handlebars" id="autocomplete">
{{input type="text" value=searchText placeholder="Search users..."}}
<table>
{{#each searchResults}}
<tr><td>
{{#linkTo "user" this}}
{{firstName}} {{lastName}}
{{/linkTo}}
</td></tr>
{{/each}}
</table>
</script>
.
//inside Ember application / app.js
App.AutocompleteController = Ember.ObjectController.extend({
searchText: null, // mutated by "autocomplete" Handlebars template
searchResults: Ember.A(), //initialize to empty array
searchForUsers: function() {
this.set("searchResults", Ember.A() ); // clear possibly non-empty array
var searchResultsBuilder = Ember.A();
//...
//... making modifications to searchResultsBuilder
//...
this.get("searchResults").addObjects(searchResultsBuilder);
}.observes("searchText")
});
注意:searchText
変更があった場合、メソッド.property("searchText")
をトリガーするには十分ではありませんsearchForUsers
:.property(..)
メソッドを要求に応じて遅延的にのみ動作さ.observes(..)
せ、メソッドを熱心に動作させます。