我无法从我的工厂jsonLanguage
收到此json电话。
我的代码:
var App = angular.module('App', []);
var theLanguage = 'english';
App.factory('jsonLanguage', function($http){
var theLanguage = 'english';
return {
get: function(theLanguage){
var url = theLanguage + '.json';
$http.get(url);
}
}
});
App.controller('mainController', function($scope, $http, $log, jsonLanguage) {
//$http.get(theLanguage + '.json')
jsonLanguage.success(function(res){ //here is the problem I tried .then and tried res.data no luck :(
$scope.language = res;
$log.debug($scope.language);
});
$log.debug($scope.language);
angular.forEach($scope.letter, function(single) {
$log.log("hello worldsss");
$log.log(single);
});
});
App.controller('intervalController', function($scope, $log) {
this.$log = $log;
//var name = $scope.single;
angular.forEach($scope.letter, function(single) {
$log.log("hello worldsss");
$log.log(single);
});
//$log.log(name);
$log.log('Hello World!');
});
App.controller('clickController', function($scope) {
});
我尝试了jsonLanguage
,然后尝试了res.data
而没有运气。
答案 0 :(得分:3)
在这里你错过了几件事:
从服务$http
get method
承诺
get: function(theLanguage){
return $http.get(url);
}
致电工厂get method
&通过将.then
放在该方法调用上来获取其承诺成功的数据。
jsonLanguage.get($scope.language).then(function(res){
$scope.language = res.data;
});
答案 1 :(得分:2)
您需要致电jsonLanguage.get().then(/**insert callback fn here*/)
才能拨打该服务。
为了使其正常工作,您需要在get函数中返回promise。
get: function(theLanguage){
return $http.get(url);
}
答案 2 :(得分:1)
返回$http
承诺,以便您稍后使用then
解决此问题。
return {
get: function(theLanguage) {
var url = theLanguage + '.json';
return $http.get(url);
}
}
现在您可以像jsonLanguage.get().then()