我有类别和子类别。
数据结构类似于blog节目:
categories: {
-JF1RmYehtF3IoGN9xHG(categoryId): {
title: "Example",
subcategories: {
JF1RmYehtF3IoGN239GJ(subCategoryId): true
}
现在我以这种方式检索数据(仅适用于一个类别):[controller]
$scope.findOneCategory = function (categoryId) {
angularFire(Categories.find(categoryId), $scope, 'category');
}
和类别服务
find: function(categoryId) {
return FireRef.categories().child('/'+categoryId);
},
这很好用!
但现在我需要检索类别中的子类别列表并将其绑定到范围,我不知道如何...我目前有这个:
观点:
<div ng-init="findSubCategories()">
<li class="list-group-item" ng-repeat="subCategory in subCategories">{{ subCategory.name }}</li>
控制器:
$scope.findSubCategories = function() {
angularFire(Categories.findSubCategories($routeParams.categoryId), $scope, 'subCategories');
}
服务看起来像这样我试了一下,但这是错的,不知道应该怎么样......如果有人能帮忙我会很高兴的!
findSubCategories: function(categoryId) {
var subCategoriesIdsList = FireRef.categories().child('/'+categoryId).child('subcategories');
subCategoriesIdsList.on("child_added", function(snap) {
FireRef.subcategories().child("/"+snap.name()).once("value", function(snap) {
// Render the comment on the link page.
console.log(snap.val());(i see the object in console but have no idea how to bind it now with the view...:(
});
});
},
不知道如何用角度视图绑定它
答案 0 :(得分:2)
首先,我建议升级到最新的AngularFire版本(目前是0.6),API已经发生了很大变化,可能更容易完成你想要做的事情。
其次,您应该只为每个类别创建一个绑定,并且子类别ID将自动包含在该数据中,因为它们只是子节点。然后,您需要为子类别名称创建单独的绑定,然后您可以查找您的ID。
假设您的数据如下所示:
categories: {
-JF1RmYehtF3IoGN9xHG: {
title: "Example",
subcategories: {
JF1RmYehtF3IoGN239GJ: true
}
}
},
subCategories: {
JF1RmYehtF3IoGN239GJ: {
name: "Example Subcategory",
}
}
您将创建两个绑定,一个用于类别,另一个用于子类别:
function MyController($scope, $firebase) {
var ref = new Firebase("https://<my-firebase>.firebaseio.com/");
$scope.category = $firebase(ref.child("categories/" + categoryID));
$scope.subcategories = $firebase(ref.child("subCategories"));
}
最后,在您看来,使用从$scope.category
中提取的ID从$scope.subcategories
获取子类别名称:
<ul ng-repeat="(id, val) in category.subcategories">
<li>{{subcategories[id].name}}</li>
</ul>