gpt4 book ai didi

ember.js - 每当 {{input}} Ember Handlebars 助手的值发生变化时调用 Controller 方法

转载 作者:行者123 更新时间:2023-12-02 06:05:21 25 4
gpt4 key购买 nike

Ember 1.0.0 RC3 提供了一个名为 {{input}} 的 Handlebars 助手.
除了更新底层 Controller 中的 String 属性之外,我还想另外 调用方法 每当输入发生变化时,在底层 Controller 上。

是否可以在更改 {{input}} 后调用 Controller 方法?文本框?

最佳答案

使用 .observes("propertyChangedByInputHelper")在应对变化使用react的 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(..)使方法急切地行动。

关于ember.js - 每当 {{input}} Ember Handlebars 助手的值发生变化时调用 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17015086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com