0

这与我之前的问题有关: Angular typeahead : watch for dataset change

我正在为我的项目使用Siyfion 的 typeahead 指令,因为它的几行代码易于理解(对于像我这样的初学者)。

现在我有一个 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完全准备好之前不会加载。
有没有办法可以编写指令,以便我可以像上面显示的那样使用它们?

4

1 回答 1

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;
};
于 2013-10-30T10:03:58.053 回答