在angularjs中使用带有指令的promise

时间:2013-10-30 08:08:31

标签: javascript django angularjs

这与我之前的问题有关: 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之前不会加载 有没有办法可以编写指令,以便我可以像上面显示的一样使用它们?

1 个答案:

答案 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;
};