我在我的应用程序中使用Emberfire,并且我尝试findAll
统计信息,然后按键对模型进行排序,如以下示例所示。但是,当我以这种方式进行排序时,我失去了查看模板中实时更新的能力,并且必须重新加载页面才能在视图中查看新数据/更新数据。
model() {
return this.store
.findAll('stats', {
reload: true,
backgroundReload: true
})
.then(stats => stats.sortBy('date'));
}
答案 0 :(得分:1)
您必须在控制器或组件上定义一个计算属性,该属性将返回已排序的统计信息。不要在路线的模型挂钩处对数据进行排序。只需返回findAll的承诺即可。
例如:
def ask(question, answers):
while True:
choice = input(question).lower()
if choice in answers:
break
print("I don't know what that means.")
return choice
choice = ask("\nGo north or south? ", ["north", "n", "south", "s"])
if choice[0] == "n":
print("\nYou went north!")
else: # the only other choice is "south"
print("\nYou went south!")
此外,余烬提供了sort macro:
//controller.js or component.js
sortedStats: computed('model.@each.date', function() {
return this.get('model').sortBy('date');
})
通过使用它,您可以更优雅地解决您的要求:
import { sort } from '@ember/object/computed';