这与我之前的问题有关: Angular typeahead : watch for dataset change
我正在为我的项目使用Siyfion's typeahead directive,因为它的几行代码很容易理解(对于像我这样的初学者)。
现在我有一个django后端服务器,它返回我想用于自动完成的JSON对象。
现在我的控制器看起来像这样:
$scope.getGuests = function (guestValue) {
return $http.jsonp('http://gd.geobytes.com/AutoCompleteCity?callback=JSON_CALLBACK &filter=US&q=' + guestValue)
.then(function (response) {
return limitToFilter(response.data, 15);
});
};
我的标记:
<input type="text" class='sfTypeahead' datasets='getGuests($viewValue)' ngModel='testname' />
现在这显然不起作用,因为我的小部件在完全准备好datasets
之前不会加载
有没有办法可以编写指令,以便我可以像上面显示的一样使用它们?
答案 0 :(得分:1)
检查是否有效:
$scope.getGuests = function (guestValue) {
var promise = $q.defer();
$http.jsonp('http://gd.geobytes.com/AutoCompleteCity?
callback=JSON_CALLBACK &filter=US&q=' + guestValue)
.success(function (response) {
promise.resolve(limitToFilter(response, 15));
});
return promise.promise;
};