如何以编程方式或什至通过 html 标记 enable/disable Angular Kendo 组合框

How to enable/disable Angular Kendo Combobox programatically or even by html markup

我正在尝试 disable/enable 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 做到这一点?我可以在 angular 控制器中为 searchString 保留 $watch(),但问题是如何使用 Angular JS 代码禁用 combobox

得到解决方案。

当我们为 kendo-combo-box.
提供值时,

Kendo UI 会创建一个新的 $scope 变量 如下所示,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

您可以使用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"

这里可以根据自己的情况定义变量。

现在可以通过使用 k-ng-disabled 获得更好的新方法,您不需要 $watch 变量

http://docs.telerik.com/kendo-ui/AngularJS/introduction#state-changes