【问题标题】:cannot enable Kendo combox box from knockout无法从淘汰赛中启用剑道组合框
【发布时间】:2012-11-03 09:51:28
【问题描述】:

我使用 KnockoutJS 填充了 Kendo Combox。我正在使用 Knockout-Kendo.js 来做到这一点。

http://rniemeyer.github.com/knockout-kendo/web/ComboBox.html

我有2个地址,k1地址和邮寄地址:

对于这两个地址,如果您从州组合框中选择一个州,则国家组合将被禁用并选择美国。

如果您从州组合框中删除州或手动输入不存在的州,则将启用国家组合框。如果您选择美国以外的任何国家,则州组合框将被禁用。

我已经为 k1 地址工作了。

<input data-bind=" kendoComboBox: { enabled: k1Address.isStateMutable,  dataTextField: 'Name', dataValueField: 'Id', data: states, value: k1Address.stateId }" />

问题在于邮寄地址。还有一个复选框“不同的邮寄地址”,所以我需要检查这两个条件(启用:isK1MailDifferfrmAddress && mailingAddress.isStateMutable)。如果我只是这样做(启用:isK1MailDifferfrmAddress)或(启用:mailingAddress.isStateMutable)它们都可以工作。我不知道为什么,当我检查它们时,它不会工作。

<input data-bind=" kendoComboBox: { dataTextField: 'Name', dataValueField: 'Id', data: states, value: mailingAddress.stateId, enabled: isK1MailDifferfrmAddress && mailingAddress.isStateMutable }" />

我在jsFiddle上上传了我的代码,你可以在那里测试。

http://jsfiddle.net/gatuV/1/

当你运行它时,邮寄地址的州和国家组合框应该被禁用,但它们不是。

【问题讨论】:

    标签: knockout.js knockout-2.0 kendo-ui


    【解决方案1】:

    通常,当您使用涉及 observables 或计算 observables 的表达式时,您需要确保将每个作为函数调用,例如:myoption: observableA() + computedB()

    然而,Kendo 绑定实际上需要一个可观察的或直接计算的(或静态值)。因此,您需要有一个表示您启用的概念的计算。

    例如,您可以将“不同地址”标志传递给地址构造函数,并将其用作您正在使用的可变计算的一部分。

    这是一个示例:http://jsfiddle.net/rniemeyer/gatuV/6/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多