javascript - knockout 数据绑定(bind)未通过选择绑定(bind)更新自定义事件

标签 javascript jquery knockout.js

我在通过 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/

相关文章:

javascript - 如何在 Cloud Firestore 查询中加入多个文档?

javascript - 我想用 bxslider 插件创建全屏淡入淡出幻灯片

javascript - Durandal widget destory 方法或类似的东西

JavaScript:获取以编程方式模拟 HTML 元素点击的点击事件坐标

php - 在传递给 google.setOnLoadCallback() 的函数中使用参数;

javascript - 在 try catch 操作期间*究竟*发生了什么?

php - jQuery 仅在单击时起作用

javascript - 如何制作 jquery 代码,只在触摸屏上工作?

javascript - Knockout js 应用程序的正确文件结构是什么?

ajax - 使用 Spring MVC 和 Knockout JS 进行服务器端验证