我正试图将工厂的结果输出到我的控制器。
到目前为止,我一直在失败,工厂内部的一切似乎都很好,我可以制作console.log的结果,它显示得很好。
任何指针?
我的工厂目前:
mainApp.factory('statusFinder', ['jsonQueryStations', 'timeConverter', function(jsonQueryStations, timeConverter){
var findTheTime = timeConverter.getTime();
var generator = function(){
return jsonQueryStations.stationData().then(function(result){
if (result.station[findTheTime]>result.station.Average){
return "Station is busy";
} else{
return "Station is quiet";
}
});
}
return {
status: function(){
return generator();
}
}
}])
现在我的控制器看起来像这样:
mainApp.controller('stuff', ['$scope', 'statusFinder', function($scope, statusFinder){
var data = statusFinder.status();
$scope.testing = data;
}])
答案 0 :(得分:0)
你可以从控制器而不是工厂中获得承诺。只需在工厂中返回jsonQueryStations.stationData()
。
mainApp.factory('statusFinder', ['jsonQueryStations', 'timeConverter', function(jsonQueryStations, timeConverter){
var generator = function(){
return jsonQueryStations.stationData()
}
return {
status: function(){
return generator();
}
}
}])
现在在控制器中捕捉这样的承诺
mainApp.controller('stuff', ['$scope', 'statusFinder', function($scope, statusFinder) {
var findTheTime = timeConverter.getTime();
statusFinder.status().then(function(result) {
if (result.station[findTheTime] > result.station.Average) {
$scope.testing = "Station is busy";
} else {
$scope.testing = "Station is quiet";
}
});
}])