我创建了一个用于添加类别和产品视图的视图。我想将产品添加到类别中。这是有效的,但它可能更有效,让它像下面的结构,而不是我在截图中得到的。
products
- KXbMe8zo14TyOYDJh4q
cat: {
id: "-KXXJY-i7Avnqw8IMqR", name: "Starters"
}
这种结构会更好吗?我应该如何实施呢?我期待整个cat
对象被传入,因为我正在引用product.cat
作为模型。
如果我将表单元素中的value
设置为{{cat}}
,我会在数据库中找到它:
"{\"name\":\"Kebabs\",\"$id\":\"-KXXJl0Ice17zDIYF_Xt\",\"$priority\":null}"
这看起来是否正确?
<select ng-model="product.cat">
<option ng-repeat="cat in cats" value="{{cat.$id}}">{{cat.name}}</option>
</select>
我正在检索类似的类别:
var cats = $firebaseArray(firebase.database().ref('category'));
cats.$loaded().then(function(){
$scope.cats = cats;
});
答案 0 :(得分:0)
我最终得到了以下内容:
var cats = $firebaseArray(firebase.database().ref('category'));
cats.$loaded().then(function(){
$scope.cats = cats;
});
$scope.addProduct = function() {
console.log($scope.product);
var category = {};
for(var i=0; i<$scope.cats.length; i++){
if($scope.cats[i].$id == $scope.product.catid){
category.id = $scope.cats[i].$id;
category.name = $scope.cats[i].name;
}
}
//var record = firebase.database().ref().child('products/category').push($scope.product.cat);
//var record = firebase.database().ref().child('products').push($scope.product);
var record = firebase.database().ref().child('products').push({
'category' : {id: category.id, name: category.name},
'name' : $scope.product.name,
'price' : $scope.product.price
});
if(record.key){
$scope.productSuccess = true;
} else {
$scope.productSuccess = false;
}
};
这在我的DB中提供了以下内容: