【发布时间】:2013-06-30 10:26:08
【问题描述】:
我有一个从其他应用程序调用的简单主干应用程序。
它似乎是一个对话框,用于查看“欢迎用户”或“更新成功”等消息。
我已经创建了这个应用程序,当我第一次调用它时,所有变量都已设置:标题和消息,但是当我第二次调用它时,第三次值没有更新,但在控制台中我看到变量发生了变化!
这是我的简化视图,我传递给它相同的值
var StatusMessageView = Backbone.View.extend({
template : tmplStatusMessage,
model : new StatusMessageModel(),
initialize : function (data) {
this.listenTo(this.model, "change", this.render);
this.model.set(data);
},
render : function () {
console.log("View - StatusMessage.render msg: " + this.model.get('message'));
var template = Handlebars.compile(this.template);
var html = template(this.model.toJSON());
//-----------INTO THIS CONSOLE LOG I SEE HTML UPDATED!!! WHY???
console.log('HTML: ' + html);
if($("#status-message").length === 0) {
$("body").append(html);
}
//AFTER A DELAY I CLOSE THE APP
var self = this;
var intro_timer = setTimeout(function () {
$("#status-message").addClass("enter");
var outro_timer = setTimeout(function () {
self.closeMessage();
}, 5000);
}, 500);
}
});
要更新到另一个视图,我使用此代码作为示例,如果我将其跟踪到控制台,则该消息很好:
statusMessageView.model.set({
title : title,
message : msg
});
为什么更新了 html,变量在控制台日志中更新但没有进入我认为的模板?
【问题讨论】:
标签: jquery templates backbone.js