【发布时间】:2015-12-09 17:52:59
【问题描述】:
通过单击按钮,我想根据两个选择元素的值更新 d3js 图。如果我理解正确,只需调用 valueAccessor 即可触发更新功能,这在我的代码中没有发生。
我有以下自定义绑定:
ko.bindingHandlers.plotSvg = {
update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
valueAccessor();
console.log("Update d3js plot");
}
};
还有观点:
<div class="panel-body">
<div class="row">
<div class="col-xs-2">
<select class="form-control"
data-bind="options: $root.options,
optionsText: 'name',
value: firstSelectedOption">
</select>
</div>
<div class="col-xs-2">
<select class="form-control"
data-bind="options: $root.options,
optionsText: 'name',
value: secondSelectedOption">
</select>
</div>
<div class="col-xs-2 col-xs-offset-5">
<button class="btn btn-primary" data-bind="click: updatePlot">
Visualise
</button>
</div>
</div>
<div data-bind="plotSvg: updatePlot"></div>
</div>
updatePlot 是视图模型中的一个函数,它所做的只是在此刻打印一个值。
编辑 javascript:http://pastebin.com/2qKLf6yf 观点:http://pastebin.com/TPvmKgxL
【问题讨论】:
标签: knockout.js custom-binding