2

我正在尝试配置一个相当复杂的模型来将视图绑定到使用 KnockoutJS。

这是一个问题标记部分:

<input type="text" data-bind="visible: dialogSelectedCode.HasValue, value: dialogSelectedCodeValue"/>
<span data-bind="text: ko.toJSON(dialogSelectedCode)"></span>

输入元素从未显示,但我的“调试”范围显示了内容

{"Code":"{intInc_G}","HasValue":true}

如果“决策”数据隐藏在 JSON 对象中,那么绑定可见输入的正确方法是什么?

更新:这是一个相当复杂的问题。要进入问题对话框,请运行小提琴,单击“添加块”并尝试在下拉输入中选择几个项目(尤其是第一个和第二个项目 - 因为它们清楚地表明该dialogSelectedCode变量确实正在更新。

4

1 回答 1

2

我认为您需要为 HasValue 属性创建一个计算值。您的绑定dialogSelectedCode.HasValue不遵循 observable,它检查 observable function上的 HasValue 。属性方式dialogSelectedCode().HasValue抛出错误。创建一个可计算并让它进行测试工作

self.dialogSelectedCodeHasValue = ko.computed(function() {
    var selectedCode  = ko.utils.unwrapObservable(self.dialogSelectedCode);
    return selectedCode && selectedCode.HasValue;
});
于 2012-07-31T22:25:47.560 回答