Javascript AngularJS:服务不向控制器返回变量
我的应用程序有一个服务,应该返回一组对象(来自twitter api的tweets),如下所示:Javascript AngularJS:服务不向控制器返回变量,javascript,angularjs,angularjs-service,Javascript,Angularjs,Angularjs Service,我的应用程序有一个服务,应该返回一组对象(来自twitter api的tweets),如下所示: .service('twitterService', function($http) { this.getTweets = function(){ $http.get('http://example.com/?json=get_twitter_sidebar').success( function(data, status, headers, conf
.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。我尝试过无数种方法,但似乎都不管用。我做错了什么?也许这是在回报一个需要解决的承诺?试试像
var getFeed = twitterService.getTweets();
getFeed.then(function (feed) {
$scope.feed = feed;
});
也许它是在回报一个需要解决的承诺?试试像
var getFeed = twitterService.getTweets();
getFeed.then(function (feed) {
$scope.feed = feed;
});
还债
.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;
};};
还债
.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;
};};
$scope.feed=twitterService.getTweets() 你的函数没有返回任何东西,这就是为什么你得到“未定义”的原因。。 试试这个:
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){...});
$scope.feed=twitterService.getTweets() 你的函数没有返回任何东西,这就是为什么你得到“未定义”的原因。。 试试这个:
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){...});