저는 AngularJS를 처음 사용하며 JSON 파일에서 데이터를 추출하는 코드를 작성하려고합니다. GET 함수를 작성 했으므로 이제는 함수 외부에서 GET 함수를 호출하려고합니다.AngularJS 함수 외부에서 함수를 올바르게 호출 할 수있는 방법은 무엇입니까?
나는 getData
기능을 가지고 있으며 마지막 줄에는 var questions = getData'~~~'
이 있습니다. 나는 이것이 내 코드에서 잘못되었다고 생각한다. DataFactory
함수 밖에서 getData
함수를 호출하려면 어떻게해야합니까?
(function(){
angular
.module("GrammarQuiz")
.factory("DataService", DataFactory);
function DataFactory($log, $http){
var vm = this
var dataObj = {
questions: questions
};
vm.sort = sort;
vm.random = random;
vm.getData = getData;
var temp = 0;
// right now I have questions variable here
// but I want to move this to the outside of the function
//var questions = getData('data1.json');
function getData(apicall){
$log.log('begin!!!');
$http.get('api/' + apicall,
{headers:
{token: 'check!'}
}
).then(function(response){
$log.log(response.data);
questions = response.data;
}, function(response){
$log.log(response.data || "Request failed");
});
}
function sort(array) {
return array.sort(function() {
return .5 - Math.random();
});
}
function random() {
for (var key in dataObj.questions) {
dataObj.questions[key].Choices = sort(dataObj.questions[key].Choices);
}
}
random();
return dataObj;
}
var questions = DataFactory.getData('data1.json');
})();
당신은 (예를 들어, 컨트롤러)이 팩토리를 주입해야합니다. 그런 다음 getData 메소드에 액세스 할 수 있습니다. –