ファクトリを使用して JSON ファイルから応答を返す角度コントローラーがあります。返されたデータをトラバースしようとすると、コメントに次のエラーが表示されます。ただし、角かっこ内の HTML 内で realArticleData オブジェクトを使用すると、完全に横断します。工場から返された約束と関係があると思いますが、よくわかりません。
コントローラー スニペット:
function SpecialOrderItemsCtrl($scope, $location, articleDataService) {
$scope.realArticleData = articleDataService.getArticles();
//This throws TypeError: Cannot read property 'thdCustomer' of undefined
$scope.custInfo = $scope.realArticleData.articles.thdCustomer;
}
HTML スニペット:
<div ng-controller=SpecialOrderItemsCtrl>
<label>Raw Article JSON</label>
<p>{{realArticleData}}</p>
<label>Json transversed by one level</label>
<p>{{realArticleData.articles}}</p>
<label>THD CUstomer </label>
<p>{{realArticleData.articles.thdCustomer}}</p>
</div>
工場:
function articleDataService($rootScope, $http) {
articleDataService.data = {};
articleDataService.getArticles = function() {
$http.get('articleData.json')
.success(function(data) {
articleDataService.data.articles = data;
});
return articleDataService.data;
};
return articleDataService;
}
sendDesign.factory('articleDataService', articleDataService);