AngularJS:服务不向控制器返回变量
AngularJS : Service not Returning Variables to Controllers
我的应用程序有一个服务,它应该返回一个对象数组(来自twitter api的tweet),看起来像:
.service('twitterService', function($http) {
this.getTweets = function(){
$http.get('http://example.com/?json=get_twitter_sidebar').success(
function(data, status, headers, config) {
if (data.status == 'ok') {
return data.feed;
} else {
return 'Error Retrieving Feed'
}
});
}
})
此服务似乎有效;它调用api并返回所需的对象数组(我使用console.log
进行验证)。然而,我似乎不能将返回的数组传递给我的控制器:
var TopPageCtrl = function($scope, $window, $http, twitterService) {
$scope.feed = twitterService.getTweets();
};
当我使用console.log($scope.feed)时,它返回undefined我试过无数种方法,但似乎都不管用。我做错了什么?
返回承诺
.service('twitterService', function($http) {
this.getTweets = function(){
var p = $http.get('http://example.com/?json=get_twitter_sidebar').success(
function(data, status, headers, config) {
if (data.status == 'ok') {
return data.feed;
} else {
return 'Error Retrieving Feed';
}
});
return p;
}});
var TopPageCtrl = function($scope, $window, $http, twitterService) {
twitterService.getTweets().then(function (response) {
$scope.feed = response;
};};
也许它返回一个需要解决的承诺?试试…
var getFeed = twitterService.getTweets();
getFeed.then(function (feed) {
$scope.feed = feed;
});
$scope。
this.getTweets = function(){
$http.get('http://example.com/?json=get_twitter_sidebar').success(
function(data, status, headers, config) {
if (data.status == 'ok') {
return data.feed;
} else {
return 'Error Retrieving Feed'
}
});
}
你的函数没有返回任何东西,这就是为什么你得到"undefined"..试试这个:
this.getTweets = function(){
return $http.get('http://example.com/?json=get_twitter_sidebar').success(
function(data, status, headers, config) {
if (data.status == 'ok') {
return data.feed;
} else {
return 'Error Retrieving Feed'
}
});
}
twitterService.getTweets().then(function (response){...});
相关文章:
- 从控制器返回后Ajax启动事件激发
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 将从控制器返回的selectbox值动态呈现为json
- 如何从服务器端控制器返回或调用已签名的小程序的方法
- 如何从控制器返回对象列表并使用JQuery(SpringMVC,ajax)显示它们
- 无法使用.ajax调用显示MVC控制器返回的属性值
- 从ajax到控制器返回的变量为null
- 服务不会以角度向控制器返回数据
- 通过 ID 获取元素,为 Sencha 控制器返回 null
- 是否可以使控制器返回模式窗口的数据?MVC5 ASP.NET
- Laravel 5.2 - 在 ajax 请求后从控制器返回视图
- CodeIgniter - 如何从控制器返回 Json 响应
- C# mvc - 控制器返回部分视图或 json 数据
- 从控制器返回 javascript 以查看
- jQuery解析从控制器返回的JSON结果
- 控制器返回纯json数据,而不是停留在页面上
- 从 mvc 控制器返回两个 dienstional 数组作为 json
- 从控制器返回Json数据以查看ASP.NET MVC
- 使用工厂和控制器返回数据
- $http没有从Spring MVC REST控制器返回值