AngularJS如何从异步调用中返回值?

时间:2013-11-29 03:05:16

标签: javascript angularjs asynchronous

观看此视频,

https://www.youtube.com/watch?v=IRelx4-ISbs

你会发现代码有一行写了这个:

$scope.twitterResult = $scope.twitter.get({q:$scope.searchTerm});

这是一个垃圾怪癖: 'twitter'的'get'方法显然是一个异步函数,它如何将值返回$ scope.twitterResult ???

jsFiddle(无法工作导致twitter API发生变化):

http://jsfiddle.net/johnlindquist/qmNvq/

2 个答案:

答案 0 :(得分:0)

此代码$scope.twitter.get({q:$scope.searchTerm});返回延迟对象。安排角度视图,以便在延迟对象解析时更新视图。这只是一种便利。

答案 1 :(得分:0)

$scope.twitterResult = $scope.twitter.get({q:$scope.searchTerm});

您的代码仅适用于角度绑定。

但是如果您需要在运行时获取数据,则需要将此格式写为以下格式。

如果$scope.twitter是网址,则写下

$http.get($scope.twitter, {q:$scope.searchTerm}).success(function (response) {
$scope.twitterResult=response;
}

$ http必须在控制器中定义