クリックでオブジェクトにバインドするのに苦労しているようですが、その理由がわかりません。私の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 を更新できるようにしたいのですが、チェックボックス コントロールを使用したくありません。
誰かが私が間違っているかもしれないことを提案できますか?
ありがとう