gpt4 book ai didi

ember.js - 在 Ember.js 路由中重新查询模型数据

转载 作者:行者123 更新时间:2023-12-04 14:46:32 25 4
gpt4 key购买 nike

有没有办法用 Ember.js 做实时数据?

我正在寻找的是能够将更新的和新的记录(而不是删除)注入(inject)到以前返回的结果中。

所以假设我有一个看起来像这样的路由器,可以进行排序和分页(又名跳过):

App.Router.map(function() {
this.resource('messages', { path: '/messages/skip/:skip/sort/:sort/direction/:direction' });
});

App.MessagesRoute = Ember.Route.extend({

model: function(params) {
this.set('params', params);
return this.query();
},

query: function() {
var sort = {};
sort[this.get('params').sort] = parseInt(this.get('params').direction);

return App.Message.find({}, {
skip: this.get('params').skip,
sort: sort
});
},

setupController: function(controller, model) {
var self = this;
this._super(controller, model);

Ember.Instrumentation.subscribe('onMessage', {
before: function(name, timestamp, message) {
self.controller.set('content', self.query());
},
after: function() {}
});
},

});

这很好用 - 它在静态意义上正确排序和跳过。

(注意:我没有使用 Ember 数据 - 只是一组 Ember 对象。)

但是,消息不断到达,我希望这些消息的显示在它们到达时自动重新查询新消息。

我有一个 websocket 告诉我什么时候发生并且工作正常,我正在使用 Ember.Instrumentation 基础设施将该事件路由到我拥有的 setupController 闭包。但是当我做一个
this.controller.set('content', this.query());

响应此事件重新加载,内容全部消失。我究竟做错了什么?

最佳答案

我认为一种方法是定期执行 App.Message.find() - ember 将处理您的 View 更新

window.setInterval(function(){App.Message.find()},1000);

如果我错了,请纠正我 - 我还在学习 ember

关于ember.js - 在 Ember.js 路由中重新查询模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17068654/

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