私は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メソッドにアクセスできます。 –