Knockout.js 剑道组合框中虚拟数据的可观察不更改

Knockout.js 剑道组合框中虚拟数据的可观察不更改,knockout.js,kendo-ui,knockout-3.0,Knockout.js,Kendo Ui,Knockout 3.0,我有一些奇怪的问题。我的页面上有剑道+击倒。由于有很多项目,我尝试在剑道组合框上设置虚拟化。但由于某些原因,combobox的第一次更改不会触发onChange事件,并且observable也不会更改。为什么? 若我理解,值映射器的唯一功能是提供数据收集中项目的索引。所以应该没问题 另一个问题应该是combobox上的autoBind属性。若设置为false,则它似乎正在工作,但初始值并没有绑定到combo中。如何解决这个问题 小提琴: ComboBox的值参数采用字符串,而不是数字。选项将转换

我有一些奇怪的问题。我的页面上有剑道+击倒。由于有很多项目,我尝试在剑道组合框上设置虚拟化。但由于某些原因,combobox的第一次更改不会触发onChange事件,并且observable也不会更改。为什么?

若我理解,值映射器的唯一功能是提供数据收集中项目的索引。所以应该没问题

另一个问题应该是combobox上的autoBind属性。若设置为false,则它似乎正在工作,但初始值并没有绑定到combo中。如何解决这个问题

小提琴:


ComboBox的
参数采用字符串,而不是数字。选项将转换为字符串,但分配给可观察对象的初始值不是。所以第一个改变使它成为一个字符串值,然后它就高兴了

你只需要

var dataToDisplay = [
    {
        "BrokerID": "1",
        "DisplayName": "Broker ID 1"
    },
    {
        "BrokerID": "2",
        "DisplayName": "Broker ID 2"
    },

etc..

组合框的
参数采用字符串,而不是数字。选项将转换为字符串,但分配给可观察对象的初始值不是。所以第一个改变使它成为一个字符串值,然后它就高兴了

你只需要

var dataToDisplay = [
    {
        "BrokerID": "1",
        "DisplayName": "Broker ID 1"
    },
    {
        "BrokerID": "2",
        "DisplayName": "Broker ID 2"
    },

等等

有没有办法强制剑道使用ID作为数字?因为使用数字作为字符串意味着数据类型混乱,而我使用的WebAPI控制器作为数据输入(通过AJAX)返回正确的类型。所以模型中的ID是数字,而返回的值(对于其他服务方法)也必须是数字。在这个演示中,他们使用数字作为值,所以一定是出了什么问题?这可能是剑道知道如何处理剑道观测值,而不适应你的虚拟事物。我不认识剑道。我记得,select的值总是应该是字符串。有没有办法强迫剑道使用ID作为数字?因为使用数字作为字符串意味着数据类型混乱,而我使用的WebAPI控制器作为数据输入(通过AJAX)返回正确的类型。所以模型中的ID是数字,而返回的值(对于其他服务方法)也必须是数字。在这个演示中,他们使用数字作为值,所以一定是出了什么问题?这可能是剑道知道如何处理剑道观测值,而不适应你的虚拟事物。我不认识剑道。我记得,select的值总是假定为字符串。