gpt4 book ai didi

javascript - 商店更新时如何更新模型数据 emberjs

转载 作者:行者123 更新时间:2023-11-27 23:48:01 24 4
gpt4 key购买 nike

我知道 Controller 现在在 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);
}
});

一切正常,数据已加载。现在我决定从 Controller 动态加载数据。所以在相应的 Controller 中,我做了如下操作:

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 中加载的数据,但未将其加载到模型中。推荐的方法是什么,以便模型在商店中提供数据后立即更新。

最佳答案

只是为了澄清:为什么你想将东西移动到 Controller ?

似乎解决所有这些问题的最简单方法是删除所有 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);
}
});

这将找到具有给定参数的所有帖子,并将它们分配给模型,然后该模型将在模板和 this.get 中以 {{model}} 形式提供('model'); 在你的 Controller 中。

关于javascript - 商店更新时如何更新模型数据 emberjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981537/

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