【发布时间】:2018-05-08 20:40:15
【问题描述】:
我有一个一次工作的过滤器,它具有预先初始化的任何值,只是在初始初始化时,但从不更新。 editstate 是一项服务;在这种情况下,它只提供那些暴露的变量。所以想法是当editstate.filterValue和editstate.filterField改变时,过滤器应该更新。
但事实并非如此。
我也尝试让它们成为本地计算值,但没有骰子。到目前为止,唯一可行的编程方法是使用把手 {{#if toggle.
取消渲染和重新渲染整个组件export default Ember.Component.extend({
store: Ember.inject.service(),
editstate: Ember.inject.service('edit-state'),
filteredList: Ember.computed.filter('model', function(current, index, all) {
return current.get(Ember.get(this.get('editstate'), 'filterField')) == Ember.get(this.get('editstate'), 'filterValue');
}),
我错过了什么?我没有看到任何强制过滤器重新计算的 API,也没有更明确地告诉它观察这些值。
更新:我发现了一种可怕的hacky方式来实现我的目标:在我的服务中,我创建但不保存记录在我过滤的模型中,只是为了强制更新。每当过滤器参数发生变化时,我都会用当前时间(毫秒)更新该记录。当然,它总是被过滤器过滤掉。
它很丑,它可能是邪恶的......有没有更好的方法?
【问题讨论】:
标签: ember.js ember-data