gpt4 book ai didi

javascript - 未从工厂获取 JSON 数据

转载 作者:行者123 更新时间:2023-12-02 15:06:03 26 4
gpt4 key购买 nike

这是我的 Controller :

 mainApp.controller('recordController', [ '$scope', 'record', 'recordSlides', function($scope, record, recordSlides) {
$scope.pageClass = 'page page-record';
record.success(function(data){
$scope.tracks = data;
});

$scope.myInterval = 3000;
recordSlides.success(function(data){
$scope.slides = data;
});
/*$scope.slides=[
{
"image": "http://lorempixel.com/400/200/"
},
{
"image": "http://lorempixel.com/400/200/food"
}
]*/}])

这些是我注入(inject)到上述 Controller 的工厂:

mainApp.factory('record',['$http', function($http){ // for delivering records data
return $http.get('./data/record.json')
.success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}]);

mainApp.factory('recordSlides',['$http', function($http){ // for delivering slides on record page
return $http.get('./data/recordSlides.json')
.success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}]);

来自工厂“record”的 JSON 数据已正确提取并显示,但来自“recordSlides”工厂的数据未显示。当我直接将 json 数据传递到“slides”(代码注释掉)时它可以工作,但是当我注入(inject) Controller 并通过工厂传递 JSON 数据时它不起作用。

这是 recordSlides.json:

[{
"image": "http://lorempixel.com/400/200/"
},
{
"image": "http://lorempixel.com/400/200/food"
}]

感谢您的帮助。

谢谢

最佳答案

在服务中:

var deferred = new $q.defer();
$http({...})
.success(function (resp) {
deferred.resolve(resp);
})
.error(function(err){
deferred.reject(err);
}
return deferred.promise;

在 Controller 中:

record.then(function(data){
$scope.tracks = data;
});
recordSlides.then(function(data){
$scope.slides = data;
});

不要忘记在服务中包含 $q 依赖项

关于javascript - 未从工厂获取 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com