【问题标题】:Updating Knockout viewModel更新淘汰赛 viewModel
【发布时间】:2013-06-21 23:19:03
【问题描述】:

我正在尝试更新淘汰视图模型,但每次我尝试推送到可观察数组时,它都会给我一个错误,即 AuditViewModel 未定义。

function (data, update) {
        if (update == false) {
            var AuditViewModel = {
                auditEvents: ko.observableArray(data.requirements)
            };

            ko.applyBindings(AuditViewModel);
        } else {
            AuditViewModel.auditEvents.push(data.requirements);
        }
    }

在页面加载时,此函数始终以 update == false 运行,并且最初填充视图模型。当我稍后使用 update ==true 调用时,它会失败。有人可以指出我正确的方向吗?

【问题讨论】:

    标签: javascript jquery knockout-2.0


    【解决方案1】:

    请注意,var AuditViewModel = { ... } 行仅在 update == false 时才会执行。因为 AuditViewModel 是一个局部变量,如果你稍后在 update == true 时调用该函数,AuditViewModel 将是未定义的。

    您需要将视图模型存储在其他位置,即:window.AuditViewModel = { ... }

    例子:

    function (data, update) {
        if (update == false) {
            window.AuditViewModel = {
                auditEvents: ko.observableArray(data.requirements)
            };
    
            ko.applyBindings(window.AuditViewModel);
        } else {
            window.AuditViewModel.auditEvents.push(data.requirements);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多