如何更新模型数据时,存储更新emberjs
How to update model data when store is updated emberjs
我知道控制器现在在Ember中被弃用了,但我想知道我如何使用旧版本的Ember来实现这一点。
我有一个路由定义如下:
Ember.Route.extend({
model : function(params) {
return Ember.RSVP.hash({
posts : store.find('post', {date : params.date, page : params.page})
});
},
setupController : function(controller, model) {
this.set('model', model.posts);
}
});
一切正常,数据被加载。现在我决定从控制器动态加载数据。因此,在相应的控制器中,我做了如下操作:
Ember.ArrayController.extend({
Ember.RSVP.hash({
posts : store.find('post', {date : params.date, page : params.page})
}).then(function(data) {
this.store.pushPayLoad(this.store.modelFor('post'), data);
}.bind(this));
});
通过上面的方法,我能够在Ember Store中加载数据,但它没有加载到模型中。当数据在存储中可用时,建议采用什么方法更新模型?
只是澄清一下:为什么要将东西移动到控制器?
似乎最简单的方法是去掉所有的ArrayController代码,以及路由中的setupController方法,并按照如下方式设置模型:
Ember.Route.extend({
model : function(params) {
return this.store.find('post', {date : params.date, page : params.page});
}
});
这是Ember首选的(也是期望的)获取带有参数的模型的方式。
为了进一步简化,假设参数的格式如下:
{
date: SOME_DATE,
page: SOME_PAGE
}
那么你所需要做的就是:
Ember.Route.extend({
model : function(params) {
return this.store.find('post', params);
}
});
这将找到具有给定参数的所有帖子,并将它们分配给模型,然后将其作为模板中的{{model}}
和控制器中的this.get('model');
可用。
相关文章:
- JavaScript-保存、存储和更新数组
- ExtJS网格在存储更新后未刷新
- 组件道具更改后更新redux存储
- 使用 JavaScript 存储、更改和更新不透明度
- ExtJS——更改代理URL然后加载存储不会更新网格
- 存储未更新到列表的数据
- 更新sencha touch 2中的存储记录值
- 更新存储在Google Drive上的文件的内容
- 如何在单击按钮时动态更新本地存储中的值
- extjs 存储更新未触发
- 在定期更新的 Angular 中存储和使用数据的最佳方式
- 为什么使用重复的嵌套键更新 Redux 存储
- 当存储状态更改时,React 组件不会更新
- 余烬简单身份验证 - 如何更新存储的令牌
- 如何用编程更改的Ember.TextBox数据更新存储
- Flux/Alt-setTimeout未更新存储
- 更改/更新存储值
- React/Flux——监控api和更新存储新数据的最佳方式
- 使用HTML标签和innerHTML、setAttribute()等传递数据.编辑和更新存储在数据库中的新闻文章
- 如何在DOM更改后更新存储在变量中的jQuery对象