gpt4 book ai didi

sproutcore - 设置和拆卸(和 self 失效)EmberJS View

转载 作者:行者123 更新时间:2023-12-02 12:22:43 25 4
gpt4 key购买 nike

我希望能够为 EmberJS 中的 View 设置和拆卸功能,对于这个例子,我会说显示每 5 秒通过 AJAX 获取的日志,但这是我经常遇到的问题

我在这里创建了一个 switchView 方法,它将处理安装/拆卸事件,但是现在它无法使自身无效以显示更新的信息。

Em.Application.create({

wrapper: $('#content'),
currentView: null,

ready: function() {

this._super();

this.self = this;

Em.routes.add('/log/', this, 'showLogs');
Em.routes.add('*', this, 'show404');

},

switchView: function(name, view) {

if (this.currentView) {
$(document.body).removeClass('page-' + this.currentView.name);

if (this.currentView.view.unload) {
this.currentView.view.unload();
}

this.currentView.view.remove();
}

if (name) {
$(document.body).addClass('page-' + name);
}

if (view.load) {
view.load();
}
view.appendTo(this.wrapper);
this.currentView = {name: name, view: view};
}

});


var LogView = Ember.View.create({

templateName: 'logs',

logs: [],

load: function() {
var self = this;
this.interval = setInterval(function() {
self.fetchLogs.apply(self);
}, 5000);
this.fetchLogs();
},

unload: function() {
clearInterval(this.interval);
},

fetchLogs: function() {
var self = this;
$.get('/logs', function(data) {
self.logs = data.list;
});
}

});

最佳答案

我不是 100% 清楚您的要求,但您应该查看 willInsertElementdidInsertElementwillDestroyElement。这些都是相对于 View 元素在 DOM 中插入和删除的调用。

关于sproutcore - 设置和拆卸(和 self 失效)EmberJS View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569960/

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