我尝试根据kendo Combobox
文本框中输入的文字禁用/启用searchString
。
如果输入了文字,则应禁用combobox
,如果searchString
中没有文字,则只应启用combobox
。
这是 DOJO Link
<input type='search' ng-model='searchString' />
<div style="padding-top: 1em;">
<h4>Remote data</h4>
<select kendo-combo-box k-enable='!(searchString && searchString.length > 0)'
k-placeholder="'Select product'"
k-data-text-field="'ProductName'"
k-data-value-field="'ProductID'"
k-filter="'contains'"
k-auto-bind="false"
k-min-length="3"
k-data-source="productsDataSource"
style="width: 100%" >
</select>
</div>
我知道jQuery
,
$('#id').kendoComboBox({ enabled: true });
但是如何使用Angular JS呢?我可以在$watch()
的角度控制器中保留searchString
,但问题是如何使用Angular JS代码禁用combobox
?
答案 0 :(得分:1)
您可以使用ng-disabled
示例:
<select
kendo-combo-box="projectCombobox"
k-data-source="projectDataSource"
k-data-text-field="'code'"
k-data-value-field="'projectId'"
k-value-primitive="true"
k-ng-model="checklist.projectId"
k-suggest="true"
k-filter="'contains'"
k-change="onProjectChange"
style="width: 100%"
ng-disabled="!DriveTagSelected">
</select>
ng-disabled="!DriveTagSelected"
您可以根据自己的情况定义变量。
答案 1 :(得分:0)
得到了解决方案。
当我们提供Kendo UI
的值时, $scope
会创建一个新的kendo-combo-box
变量。
如下所示,myCombobox
<select kendo-combo-box='myCombobox'
k-placeholder="'Select product'"
k-data-text-field="'ProductName'"
k-data-value-field="'ProductID'"
k-filter="'contains'"
k-auto-bind="false"
k-min-length="3"
k-data-source="productsDataSource">
</select>
我们可以在控制器中使用相同的$scope
变量来禁用它。
$scope.myCombobox.enable(false);
我更新了相同的 DOJO
答案 2 :(得分:0)
现在可以使用k-ng-disabled
提供更好的新方法,您不需要$watch
变量
http://docs.telerik.com/kendo-ui/AngularJS/introduction#state-changes