我有两项服务。只需返回一个可以正常工作的字符串,并在完美视图上显示。但是另一个函数对后端执行$ http调用。 $ http调用工作正常,但无法将结果传递到控制器
(function(){
var videoStoreApp = angular.module('videoStoreApp', ['ui.router']);
videoStoreApp.factory('videoListService', function($http, $rootScope){
var myService = {};
myService.getData = function()
{
return $http({
method: 'GET',
url: 'app/services/getDvd.php'
}).then(function(data){
var returnObj = {
complete:true,
data: data.data
};
return returnObj;
});
};
myService.getSum = function()
{
return 'services test';
};
return myService;
});
})();
这就是我从控制器调用服务的方式...
angular.module('videoStoreApp').component('videoList', {
templateUrl: 'app/views/videoList.html',
controller: function videoListFunction($http,$scope,videoListService){
$scope.test3 = videoListService.getSum();
$scope.dvd = videoListService.getData();
};
}
});
有人可以帮忙吗?这是我第一次在堆栈流上发布问题
答案 0 :(得分:0)
我认为您应该替换此行
$scope.dvd = videoListService.getData();
与此
videoListService.getData().then(function(data){
$scope.dvd = data;
});
因为,myService.getData
返回了一个承诺。您可能不需要承诺,但是您需要价值。承诺解决后,您所需的值将在承诺的then
函数中可用。
答案 1 :(得分:0)
这里是标记
<ul>
<li ng-repeat="dvd in $ctrl.dvd">
<a href="" ng-click="selectMovie(dvd.film_id)">{{dvd.title}}</a>
</li>
</ul>