【发布时间】:2014-10-05 19:03:03
【问题描述】:
我正在制作一个 Angular 应用程序,并且开始使用一些 Kendo UI 控件。我在连接自动完成控件时遇到了一些问题。我想使用一个工厂,它会从我的数据库中返回“自动完成”值列表。
我已经包含了自动完成控件,我正在尝试使用 k-options 属性:
<input kendo-auto-complete ng-model="myFruit" k-options="FruitAutoComplete" />
在我的控制器中,以下硬编码的水果列表起作用:
$scope.FruitAutoComplete = {
dataTextField: 'Name',
dataSource:[
{ id: 1, Name: "Apples" },
{ id: 2, Name: "Oranges" }
]
}
当我将它移到使用我的工厂时,我看到它调用并从工厂返回数据,但它从未绑定到屏幕上。
$scope.FruitAutoComplete = {
dataTextField: 'Name',
dataSource: new kendo.data.DataSource({
transport: {
read: function () {
return FruitFactory.getYummyFruit($scope.myFruit);
}
}
})
}
我最终的请求永远不会被自动完成。
我的工厂只是返回了一系列水果 [ 我的水果工厂代码:
getYummyFruit: function (val) {
return $http.get('api/getFruitList/' + val)
.then(function (res) {
var fruits= [];
angular.forEach(res.data, function (item) {
fruits.push(item);
});
return fruits;
});
}
【问题讨论】:
-
你能显示 FruitFactory 代码吗?有什么错误吗?
-
我刚刚更新了原帖水果工厂没有错误它返回一个水果数组。
-
$http.get 实际上返回的是 $promise 而不是数据。
-
我也注意到你的阅读{}我认为应该阅读{数据:}
标签: angularjs kendo-ui kendo-datasource kendo-autocomplete