Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道角度';s自动完成在结果中显示对象_Javascript_Angularjs_Autocomplete_Kendo Ui - Fatal编程技术网

Javascript 剑道角度';s自动完成在结果中显示对象

Javascript 剑道角度';s自动完成在结果中显示对象,javascript,angularjs,autocomplete,kendo-ui,Javascript,Angularjs,Autocomplete,Kendo Ui,我正在尝试使用剑道角的自动完成小部件使用服务器过滤。服务调用后,弹出窗口显示[object object],其数量等于服务器返回的结果。所以请你看一下我的代码,指出我犯的错误 这是我的密码: var oThis = this; var uiQueryConfig = this.seUIConfigsCacheService.GetItem('OpportunityDashboard'); var dataSource = new kendo.data.DataSource({ serverFi

我正在尝试使用剑道角的自动完成小部件使用服务器过滤。服务调用后,弹出窗口显示[object object],其数量等于服务器返回的结果。所以请你看一下我的代码,指出我犯的错误

这是我的密码:

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);
    });
 }
代码是用typescript编写的

这在模板中:

<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'”

好的,我已经整理好了。实际上有两个问题,第一个问题是k-data-text-field中的变量名应该是单引号,即
k-data-text-field=“'name'”
。第二,变量名区分大小写,因此它应该是
k-data-text-field=“'name'”

如果您想将HTML从过多属性中释放出来,可以将k-options属性传递给剑道元素,如下所示:

<input id="name" kendo-auto-complete k-options="acOptions" k-data-source="dataSource" ng-model="searchText" />
$scope.acOptions = {
   minLength: 3,
   dataTextField: 'name'
   ignoreCase: true
}

你能看一下数据源中的数据吗?数据源。使用chrome控制台查看数据结构。其中的数据对象是否具有名为name的属性?它是字符串吗?我不确定如何检查数据源。\u数据,因为该服务是在数据源的传输读取属性内调用的。在这个函数中,数据源尚未生成,所以我应该在哪里检查它?好的,我已经在自动完成的select事件中检查了数据源。是的,我的数据在那里,它是一个对象集合,其中有一个名为Name的属性。你应该用正确的答案来结束问题,而不是评论,也不是编辑。非常感谢。