【发布时间】:2019-08-23 23:33:35
【问题描述】:
我想根据用户从复选框中的选择启用/禁用剑道组合框,我将其存储在一个变量中。
我已经尝试将变量设置为 enable 属性,但这仅在控件被内置时才有用。
有人知道我在创建控件时是否可以这样做吗?
<div id="fund" class="col-xs-3">
input class="required" data-bind="title: $parent.selectedFund,
kendoComboBox: {
placeholder: 'Start typing to search...',
value: $parent.test,
widget: $parent.searchSource,
dataTextField: 'managerName',
dataValueField: 'managerId',
filter: 'contains',
autoBind: false,
minLength: 3,
enable: overrideGlobalMapping, //this does not work for me even though the variable holds the correct value
change: function(){ if(this.value() && this.selectedIndex == -1)
{
setTimeout(function () {$parent.selectedManagerId(null);}, 100);}},
dataSource: {
serverFiltering: true,
transport: {
read: $parent.retrieveManager
}
}
}" />
</div>
【问题讨论】:
-
将您的组合框定义包装在一个函数中。调用该函数仅由复选框更改事件触发。
-
既然您已经在使用绑定,我建议您看看MVVM demo,它完全符合您的要求;它将组合的启用状态和复选框的选中状态绑定到 kendo 可观察对象上的单个布尔属性。然后两者一起跟踪,也可以像这样以编程方式更改
viewModel.set("isEnabled", true); -
@FrozenButcher:这是我认为的解决方法,也是我最终要做的。谢谢。
-
@JoeGlover:我尝试过这样做,但是由于我们以更复杂的方式处理 MVVM(多个模型链接到视图模型),因此为此做的工作太多了。无论如何,感谢您的建议,我正在考虑新的实现。
标签: javascript kendo-ui telerik kendo-combobox