我正在嘗試使用kendo angular的auto自動完成小部件,並使用服務器過濾。在服務調用之後,彈出窗口顯示[對象對象],其數量等於從服務器返回的結果。所以你可以看看我的代碼,並指出我所犯的錯誤。Kendo Angular的Auto在結果中完成顯示對象
這裏是我的代碼:
var oThis = this;
var uiQueryConfig = this.seUIConfigsCacheService.GetItem('OpportunityDashboard');
var dataSource = new kendo.data.DataSource({
serverFiltering: true,
serverPaging: true,
pageSize: 20,
transport: {
read: function (options) {
oThis.getDataFromServer(options, uiQueryConfig, false, options.data.filter.filters[0].value);
}
}
});
$scope.dataSource = dataSource;
這裏是getDataFromServer的定義:
getDataFromServer(options: any, uiConfig: Model.UIConfig, recordsCountNeeded: boolean, searchText?: string): void {
var searchParam = new Model.SearchParamsCM();
searchParam.PageIndex = options.data.page;
searchParam.PageSize = options.data.pageSize;
searchParam.SearchText = searchText;
var oThis = this;
this._seHttpService.GetWithParms('/spa/api/genericrequest', searchParam)
.then(function (result) {
var datum = oThis.createJSONFromResults(result.data, uiConfig);
if (recordsCountNeeded) //grid
options.success(datum);
else //auto complete
options.success(datum.data);
},
function (result) {
options.error(result);
});
}
的代碼是打字稿。
這是模板:
<input id="name" kendo-auto-complete k-min-length="3" k-data-text-field="name" k-ignore-case="true" k-data-source="dataSource" ng-model="searchText" />
我試着調試options.success功能,並發現該參數值也有很多其他的信息,包括整個對象從服務器返回的,而不是一個我通過它,即datum.data。
感謝您的期待!編輯: 好吧,我已經整理出來了。實際上有兩個問題,首先是k-data-text-field中的變量名應該用單引號,即k-data-text-field =「'name'」。其次變量名是區分大小寫的,所以它應該是k-data-text-field =「'Name'」
請問您可以看看數據源中的數據嗎? dataSource._data。使用chrome控制檯查看數據結構。你的數據對象是否有名爲name的屬性?它是一個字符串嗎? –
我不知道如何檢查dataSource._data,因爲該服務在傳輸的dataSource的讀取屬性中調用。這個函數數據源裏面還沒有建立,所以我在哪裏檢查它? – Haris
好的我檢查了選擇自動完成事件中的數據源。是的,我的數據在那裏是對象的集合,並且有一個名爲Name的屬性。 – Haris