在我看来,我想使用 Knockout 显示状态消息。用户必须等待很长时间,我想向用户展示这些消息正在发生什么(并且仍然有一些事情发生)。
为此,我创建了一个函数showStatusMessage,可以从应用程序中的任何位置调用它来显示状态消息。但是这不起作用,因为我可以在控制台中看到错误消息property is not defined
function showStatusMessage(message) {
var node = $("#statusTemplate");
ko.cleanNode(node[0]);
ko.applyBindings(new StatusMessageTemplate(message), node[0]);
}
function StatusMessageTemplate(message) {
var self = this;
self.visible = message.isVisible;
self.statusText = message.statusText;
self.hide = function() {
self.visible(false);
}
}
当我想显示一个新的状态消息时,我想像这样调用showStatusMessage函数:
showStatusMessage({
isVisible: true,
statusText: "Loading your data, please wait..."
});
我的模板如下所示:
<div id="statusTemplate" data-bind="visible: visible">
<span data-bind="text: statusText"></span>
</div>
在showStatusMessageandStatusMessageTemplate函数中,我都可以输出 的值,message所以这不是问题。在没有可用数据的情况下加载模板似乎是一个时间问题。当我从模板中删除所有“数据绑定”属性时,控制台中没有错误。