我在通过 select
元素更改时调用的自定义事件进行更新时遇到问题。这个想法是 select
元素发生变化,从而更新 datatype
参数。然后,更改事件启动,更新 sliderType
( bool 值),如果选择特定值,则更改为 true
。这一切都工作正常,但是 div -data-bind="if: sliderType-
不会在更改时更新,但它可以在页面加载时工作。
是否有某种方法可以强制页面重新检查绑定(bind)?
这是代码片段,可让您了解我的结构。
HTML
<select data-bind="options: Items, optionsText: 'type', value: dataType, optionsCaption: 'Choose Data Item...', event: { change: dataTypeChange }"></select>
<div data-bind="if: sliderType">Here is a message. Astonishing.</div>
JavaScript
dataTypeChange: function() {this.sliderType = (this.dataType._latestValue.id == 6) ? true : false;
正在使用 ko.observable:
{
dataItemId: -1,
name: ko.observable(res.Text),
dataType: ko.observable(res.DataType),
dataTypeChange: function() {
this.sliderType = (this.dataType._latestValue.id == 6) ? true : false;
},
sliderType: sliderActive
}
最佳答案
我犯了一个愚蠢的错误,如果data-bind
对象是一个可观察的对象,将会有所帮助
{
dataItemId: -1,
name: ko.observable(res.Text),
dataType: ko.observable(res.DataType),
dataTypeChange: function() {
this.sliderType = (this.dataType._latestValue.id == 6) ? true : false;
},
sliderType: ko.observable(sliderActive)
}
关于javascript - knockout 数据绑定(bind)未通过选择绑定(bind)更新自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325320/