嗯,我找到了一個解決辦法這對我來說工作得很好:
在指令HTML,我添加了一個回調事件k-close
。在此回調控制器我防止關閉事件(在特定條件下的課程)的默認行爲與控制器下面的代碼:
$scope.closeCallback= function (e) {
if (someConditionForWhichDropdownShouldntBeClosed) {
e.preventDefault();
}
};
和這裏的指令的HTML:
<input
ng-model="model"
kendo-auto-complete="source"
k-data-source="locationDataSource"
k-select="selectLocation"
k-close="closeCallback">
在我的情況下,只要沒有選擇項目,我就阻止下拉菜單關閉。
爲此,我添加了默認情況下是錯誤的一個新的布爾範圍的變量,如果下拉菜單打開被設置爲true:
$scope.locationDataSource = new kendo.data.DataSource({
type: "json",
serverFiltering: true,
transport: {
read: function (options) {
$scope.keepKendoDropdownOpen = true;
someOtherFuncionalityAfterSelectingAnItem();
}
}
});
和選擇後再次設置爲false(該指令的k-select
的回調)。
如果用戶按下ESC或其他東西,也很好看,但到現在爲止還好。
請隨時讓我的解決方案更好或發佈其他解決方案! :-)