私は小さな AngularJS アプリを開発しており、現在サービスの作成に苦労しています。
連絡先 (名前、住所など) を提供するためのバックエンドとして機能するサービスがあります。これまでは、サービスの配列としてハードコーディングされていました ( instance.contacts=[...]
) が、json ファイルから読み取ろうとしています。
myModule.factory('contactService', ['$http',function ($http) {
var instance = {};
$http.get('contacts.json').success(function (data) {
instance.contacts = data;
});
return instance;
}]);
ファイルが正常に読み取られたことがブラウザ コンソールに表示されますが、画面には何も表示されません。
そこで、代わりに次のことを試してみましたが、うまくいきました:
myModule.factory('contactService', ['$http',function ($http) {
var instance = {
contacts:[]
};
$http.get('contacts.json').success(function (data) {
angular.forEach(data, function(item) {
instance.contacts.push(item);
});
});
return instance;
}]);
最初のコード スニペットではなく、2 番目のコード スニペットが機能する理由がわかりません。誰かが私を理解するのを手伝ってもらえますか?