如何以编程方式甚至通过html标记启用/禁用Angular Kendo Combobox

时间:2016-02-23 07:55:39

标签: angularjs kendo-ui kendo-combobox

我尝试根据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

3 个答案:

答案 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