我正在尝试为搜索我的员工表创建一个组件。我有一个连接到我的服务的下拉列表,当您键入时,它会更新选项以供选择。
我遇到的问题是当记录集缩小到足以仅提供单个结果时。因为我在这里调用.map
函数,所以当我们不再检查数组而不是单个对象时它会中断。
我的目标是,当检测到单个对象时,我只需将其推入数组,留下一个单个对象的数组。
this._mapsService.searchEmployees(searchString)
.then((results: EmployeeRecord[]) => {
// No Results Found
if(typeof(results) === undefined){
console.log('No Results')
// Single record, add object to array
}else if(!this._utils.isArray(results)){
console.log('here');
(results: EmployeeRecord[]) => Array(results)
}
this.employeeSelection.items = results.map(result => {
return new EmployeeOption(result.QID, result.FirstName + ' ' + result.LastName + ' (' + result.NTID + ')')
});
(<any>this.employeeSelection).open()
})
参考实用程序服务:
/**
* Determine if the obj provided is an array
*
* @param {*} obj
* @returns
* @memberof UtilsService
*/
isArray(obj: any) {
return Array.isArray(obj)
}
我的问题发生在评论// Single record, add object to array
的行中。我试图将我的对象推入一个数组。我认为它是console.log
函数,但我继续收到关于.map
的错误,所以我知道结果没有按预期放入数组中。
我在这里缺少什么?
更新
服务电话
/**
* Search the employee table for data
*
* @returns
* @memberof MapsService
*/
searchEmployees(query) {
// Minimum of 2 characters required for search
if(query.length >= 2){
return new Promise((resolve, reject) => {
this._http.post(this.baseUrlGlobal + '/fetchEmployeesAPI', { "query": query}, { "headers": this.headers })
.map((result: Response) => result.json())
.subscribe((results) => resolve(results.results));
});
}
};