过去一天我一直在努力解决这个问题,尽管看起来每个人都有这个工作,但我一直都会遇到这个错误:
Error: 'undefined' is not an object (evaluating 'c.length')
以下是我的HTML:
<input ng-model="customerQuery"
type="text"
typeahead="suggestion for suggestion in searchCustomers($viewValue)"
typeahead-editable="false"
typeahead-on-select="addCustomerToInvoice($item)"
typeahead-min-length="3"
class="form-control"/>
这是我的服务:
getCustomers: function(formData) {
return $http({
url: '/api/sales/searchCustomer',
data: {name: formData},
method: 'POST',
header: {'Content-Type':'application/json'}
});
}
最后这是我的控制器:
$scope.searchCustomers = function(customer) {
SalesService.getCustomers(customer)
.then(
function(response) {
if (response.data.message) {
console.log(response.data.message);
}
else {
return limitToFilter(response.data, 10);
}
},
function(response) {
console.log(response.data);
}
);
};
提前谢谢
答案 0 :(得分:0)
如果没有正在运行的重现场景,很难确定,但有一件事显然是错误的,那就是您没有从控制器中的searchCustomers
返回服务调用的结果。它应该是这样的:
$scope.searchCustomers = function(customer) {
return SalesService.getCustomers(customer)
.then(
function(response) {
if (response.data.message) {
console.log(response.data.message);
}
else {
return limitToFilter(response.data, 10);
}
},
function(response) {
console.log(response.data);
}
);
};
除了这个遗漏之外,可能还有更多内容,因此如果此修复后仍有任何问题,请发送重现方案。