我似乎很难通过点击绑定到一个对象,我不知道为什么。我的 HTML 片段如下:
<div class="moodControlGroup">
<label class="control-label" for="nodeHeight">Height</label>
<div class="controls">
<input type="text" class="query" id="nodeHeight" data-bind="value: settings.nodes.height.value" />
<textarea class="queryExpanded funcText" data-bind="value: settings.nodes.height.funcValue"></textarea>
</div>
<input class="fx btn btn-primary" type="submit" value="fx" data-bind="click: function(item) { alert(JSON.stringify(item)) ; }, css: { selected: settings.nodes.height.isFunc }" />
</div>
我的问题在于底部的提交按钮。设置具有以下 JSON 结构 - 使用 ko.mapping 将其转换为淘汰对象:
nodes: {
width: { isFunc: false, value: 24, funcValue: "" },
height: { isFunc: true, value: 24, funcValue: "function(d) { return d.dy; }" },
}...
我想要做的是单击提交按钮,并获取高度对象:
height: { isFunc: true, value: 24, funcValue: "function(d) { return d.dy; }" }
然而,似乎我只得到空对象 {},或者包含节点属性的稍高的对象。我如何设法定位我的点击事件以获取正确的值?最终,我希望能够切换它背后的 isFunc 值的状态,以更新一些 CSS ......但我不希望使用复选框控件。
谁能建议我可能做错了什么?
谢谢