对于一个简单的概览屏幕,我开发了一个路由来设置一个执行 App.Location.find() 的控制器。
App.LocationsIndexRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('content', App.Location.find());
},
renderTemplate: function() {
this.render('locations.index',{into:'application'});
}
});
我天真地认为这会简单地去商店拿走所有的记录,让我对记录有一个最新的看法。
显然不是....
- 当外部进程开始从数据库中删除记录时,App.Location.find() 会继续返回这些已删除的记录。(尽管 REST 调用不再显示它们)
- 如果外部进程开始将记录添加到数据库,App.Location.find() 会拾取它们。
- 如果我删除 Ember 应用程序本身中的记录表单,则模型会正确更新。
我应该如何在我的 Ember 应用程序中处理这个问题?我想对我的数据库中的任何内容有一个最新的视图。现在我需要刷新页面 (F5) 以获得最新视图。使用 linkTo 助手向我展示了陈旧的数据。
这似乎是我在 EmberJS 中完全错过的另一件微不足道的事情。文档中是否提到了它为什么会这样?我想这种行为背后有一个有效的哲学。
我的概览屏幕只是对显示最新数据感兴趣。如果数据库中不再有记录,则模型不应再返回它。
我在 Github中添加了一个存在此问题的示例项目。