이것은 카테고리 2의 파이어베이스 구조입니다.범위 내에서 Firebase 실시간 데이터가 올바르게 추가되지 않습니다. anglejs
는 이것이 subcategories2입니다.
내가 $ scope.Categories []는이 형식으로 기입 할 화면에 데이터를 표시합니다.[{
"id": "1",
"display_with": "7",
"image": "/images/salt_sugar.png",
"name": "Salt & Sugar",
"subcategories": [{
"scid": "1",
"scname": "Sugar Products"
},
{
"scid": "5",
"scname": "Tea"
}
]
},
.
.
.
.
]
$ scope.Categories []를 채우기위한 논리.
$scope.Categories = [];
var categoriesRef = firebase.database().ref('categories2');
categoriesRef.on('value', function(snapshot) {
$scope.Categories = [];
var recvCategories = [];
recvCategories = snapshot.val();
for (var j=0; j<recvCategories.length; ++j){
var category = recvCategories[j];
//alert (category);
if (category != undefined){
var category_modified = {};
category_modified.id = category.id;
category_modified.display_with = category.display_with;
category_modified.name = category.name;
category_modified.image = category.image;
var subcategories = [];
for(var key in category.subcategories) {
var subcategoriesRef = firebase.database().ref('subcategories2/' + key);
subcategoriesRef.on('value', function(snapshot2) {
subcategories.push(snapshot2.val());
});
}
category_modified.subcategories = subcategories;
$scope.Categories.push(category_modified);
}
}
$scope.$apply();
});
데이터를 사용할 수있게되면 화면에 표시하고 싶습니다. 그래서 나는 $ scope를 사용하고있다. $ apply();
데이터가 제대로 표시되지 않는 문제가 있습니다. 일단 다른 컨트롤러로 가서 동일한 컨트롤러로 돌아 오면 모든 것이 예상대로 표시됩니다.
하위 범주 정보가 $ scope.Categories []
최소한의 문제를 재현 할 수있는 jsfiddle/jsbin을 설정할 수 있습니까? –
@FrankvanPuffelen https://jsfiddle.net/py3ofkyc/에서 jsfiddle을 찾으십시오. "click me"버튼을 누르고 로그를 보면 모든 카테고리가 먼저오고 그 다음에는 모든 하위 카테고리가옵니다. 하지만 내가 원하는 것은 첫 번째 범주와 하위 범주를 표시 한 다음 두 번째 범주와 하위 범주를 표시하는 것입니다. –