2016-11-27 35 views
0

カテゴリと製品のビューを追加するためのビューを作成しました。カテゴリに商品を追加したいこれは動作していますが、スクリーンショットではなく、以下のように構造化する方が効率的です。Firebaseデータベースにネストされたオブジェクトを保存する方法

products 
    - KXbMe8zo14TyOYDJh4q 
      cat: { 
       id: "-KXXJY-i7Avnqw8IMqR", name: "Starters" 
       } 

この構造体を改善し、実装する方法はありますか?私はモデルとしてproduct.catを歓迎しているので、catオブジェクト全体が渡されることを期待しています。

私は{{cat}}するフォーム要素でvalueを設定した場合、私はDBにこれを取得する:

"{\"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; 
       }); 

enter image description here

答えて

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:

enter image description here

関連する問題