我有一个页面将一些数据加载到模型中,并且模型的一个属性具有错误消息。我有一个js文件,检查错误消息是否存在;如果是这样,它会显示一条警告,其中包含如下信息:
function CheckErrMsg(model) {
if (model.CallStatusStatus() == -111) {
alert(model.CallStatusErrorMessage());
}
}
每当我对已加载的对象做任何事情时,它会自动加载另一个,如果检查出新模型,它将再次显示警告。
我希望仅为加载的第一个模型显示警报,所以我想我需要知道是否有办法检查是否已经显示该警报,如果是,则不再显示它。
答案 0 :(得分:0)
只需设置一个标志:
messageDisplayed=0;
function CheckErrMsg(model) {
if (model.CallStatusStatus() == -111 && messageDisplayed==0) {
alert(model.CallStatusErrorMessage());
messageDisplayed=1;
}
}
那就行了。
答案 1 :(得分:0)
您可以向模型添加IsAlertShown
字段,然后在发出警报之前进行检查:
model.IsAlertShown = ko.observable(false);
if (!model.IsAlertShown() && model.CallStatusStatus() == -111) {
model.IsAlertShown(true);
alert(model.CallStatusErrorMessage());
}
然而,我个人不喜欢污染'我的View-Model(通常将被发送回服务器)与纯粹与UI相关的东西。所以我会将标志作为函数本身的一部分公开:
if (!CheckErrMsg.IsAlertShown && model.CallStatusStatus() == -111) {
CheckErrMsg.IsAlertShown = true;
alert(model.CallStatusErrorMessage());
}
(因为在JavaScript函数中也是对象,你也可以在函数上设置属性)