我正在尝试配置一个相当复杂的模型来使用 KnockoutJS 绑定(bind) View 。
这是一个问题标记部分:
<input type="text" data-bind="visible: dialogSelectedCode.HasValue, value: dialogSelectedCodeValue"/>
<span data-bind="text: ko.toJSON(dialogSelectedCode)"></span>
输入元素从未显示,但我的“调试”范围显示内容
{"Code":"{intInc_G}","HasValue":true}
如果“决策”数据隐藏在 JSON 对象中,绑定(bind)输入的可见内容的正确方法是什么?
更新:这是一个相当复杂的fiddle of the problem 。要进入问题对话框,请运行 fiddle ,单击“添加 block ”并尝试在下拉输入中选择多个项目(尤其是第一个和第二个 - 因为它们清楚地表明 dialogSelectedCode
变量确实是正在更新。
最佳答案
我认为您需要为 HasValue 属性创建一个计算值。您的绑定(bind) dialogSelectedCode.HasValue
不遵循可观察值,它会检查可观察值函数上的 HasValue。属性方法 dialogSelectedCode().HasValue
抛出错误。创建一个可计算并让它进行测试 works :
self.dialogSelectedCodeHasValue = ko.computed(function() {
var selectedCode = ko.utils.unwrapObservable(self.dialogSelectedCode);
return selectedCode && selectedCode.HasValue;
});
关于knockout.js - KnockoutJS json 对象/可观察 "visible"绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11747844/