我使用KnockoutJS填充了Kendo Combox。我正在使用Knockout-Kendo.js来做到这一点。
http://rniemeyer.github.com/knockout-kendo/web/ComboBox.html
我有2个地址,k1地址和邮寄地址:
对于这两个地址,如果从状态组合框中选择状态,则国家/地区组合是dsiabled并且选择了美国。
如果从状态组合框中删除状态,或者手动键入不存在的状态,则将启用国家/地区组合框。如果您选择美国以外的任何国家/地区,则会禁用状态组合框。
我为k1地址工作了。
<input data-bind=" kendoComboBox: { enabled: k1Address.isStateMutable, dataTextField: 'Name', dataValueField: 'Id', data: states, value: k1Address.stateId }" />
问题是邮寄地址。还有一个复选框“不同的邮件地址”,所以我需要检查两个条件(启用:isK1MailDifferfrmAddress&amp;&amp; mailingAddress.isStateMutable)。如果我只是(启用:isK1MailDifferfrmAddress)或(启用:mailingAddress.isStateMutable)它们都可以工作。我不知道为什么,当我检查它们时,它都不会起作用。
<input data-bind=" kendoComboBox: { dataTextField: 'Name', dataValueField: 'Id', data: states, value: mailingAddress.stateId, enabled: isK1MailDifferfrmAddress && mailingAddress.isStateMutable }" />
我在jsFiddle上传了我的代码,你可以在那里进行测试。
当你运行它时,应该禁用邮件地址的州和国家组合框,但它们不是。
答案 0 :(得分:3)
通常,当您使用涉及可观察对象或计算可观察对象的表达式时,您需要确保将每个作为函数调用,如:myoption: observableA() + computedB()
。
然而,Kendo绑定实际上确实需要可观察或直接计算(或静态值)。因此,您需要一个代表您启用概念的计算器。
例如,您可以将“不同地址”标志传递给地址构造函数,并将其用作您正在使用的可变计算机的一部分。