javascript - 检测我是否已经发出警报消息

标签 javascript knockout.js

我有一个页面将一些数据加载到模型中,并且模型的属性之一有错误消息。我有一个 js 文件来检查错误消息是否存在;如果是这样,它会显示一 strip 有消息本身的警报,如下所示:

function CheckErrMsg(model) { 
    if (model.CallStatusStatus() == -111) {
        alert(model.CallStatusErrorMessage());
    }
}

每当我完成对已加载的对象的操作时,它都会自动加载另一个对象,如果检查出新模型,那么它将再次显示警报。

我希望仅针对加载的第一个模型显示警报,因此我想我需要知道是否有办法检查该警报是否已显示,如果是,则不再显示。

最佳答案

您可以向模型添加一个 IsAlertShown 字段,然后在发出警报之前检查它:

model.IsAlertShown = ko.observable(false);

if (!model.IsAlertShown() && model.CallStatusStatus() == -111) {
    model.IsAlertShown(true);
    alert(model.CallStatusErrorMessage());
}

然而,就我个人而言,我不喜欢用纯粹与 UI 相关的东西“污染”我的 View 模型(通常将被发送回服务器)。所以我会将标志公开为函数本身的一部分:

if (!CheckErrMsg.IsAlertShown && model.CallStatusStatus() == -111) {
    CheckErrMsg.IsAlertShown = true;
    alert(model.CallStatusErrorMessage());
}

(由于在 JavaScript 中函数也是对象,因此您也可以设置函数的属性)

关于javascript - 检测我是否已经发出警报消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25164013/

相关文章:

c# - 单击按钮激活/停用 javascript

javascript - 与函数和变量的多重Knockout绑定(bind)

javascript - 使用 JS 或 Jquery - 是否可以有一个只读字段显示一个掩码,但在复制时显示未掩码的值?

javascript - 更新函数内的对象

jquery-mobile - 带有 jQ​​uery Mobile + knockout.js 的单选按钮的初始 'checked' 状态

javascript - Knockout.js 观察预先存在的 API 对象的成员

knockout.js - Twitter 引导日期选择器在条件 knockout 声明中出现问题

javascript - 如何在 linux 或 windows 上将 java 导出到 jar

javascript - 从现有的 json 创建动态 json

javascript - JavaScript 中的类变量和 setInterval