1

AngularJS と DOMの.add()メソッドに違いはありますか? AngularJS アプリケーションで.add()を使用していますが、データを firebase にプッシュする際に *問題が発生しています。いくつかの調査を行うためにドキュメントを見に行くと、この方法に関するAngularJSドキュメントには何も見つかりませんでした。DOM の.add()は、選択にオプションを追加するためのものであることがわかりました(例: Object_of_Select.add(option, before);)。しかし、これは IMO を AngularJS での使用方法に実際に変換するものではありません。

*私が経験している問題: Firebase と永続的なデータに問題はありません。非常に簡単で素晴らしいです。ただし、オブジェクト (この例では「キャンペーン」) を取得し、オブジェクトをネストされたオブジェクトの配列 (「戦術」) にプッシュすると、問題が発生します。2 番目にローカル データを追加すると、そのデータを Firebase に「追加」できなくなります。エラーはありません。何もありません。

誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.

テンプレート

<!-- TITLE THE CAMPAIGN -->
<h3>{{campaign.name}}</h3>
<input type="text" placeholder="Campaign Title" ng-model="campaign.name"/>

<!-- LOOP THROUGH TACTICS -->
<div class="well well-lg" ng-repeat="foo in campaign.tactics">
  <h4>{{foo.name}} - {{foo.type}}</h4>
</div>

<!-- SELECT TACTIC TYPE (Loaded from separate Firebase instance)-->
<select ng-model="tacticSelect">
    <option ng-repeat="tactic in tactics" value="{{tactic.name}}">{{tactic.name}} ({{tactic.type}})</option>
</select>

<!-- PUSH NEW TACTICS INTO TACTIC LOOP -->
<button class="btn" ng-click="campaign.tactics.push({'name': tacticSelect, 'type': 'email'})"><span class="glyphicon glyphicon-plus" ></span> Add Tactic</button>


<!-- SAVE CAMPAIGN TO CAMPAIGNS FIREBASE -->
<button class="btn btn-success" ng-click="campaigns.add(campaign)"></span> Save</button><!-- ng-click="campaigns.add(campaign)"-->

コントローラ

function scopeAssignments($scope, angularFireCollection, $location){

        $scope.tactics = angularFireCollection(fbTactics);
        $scope.campaigns = angularFireCollection(fbCampaigns);

        // SAMPLE DATA SET
        $scope.campaign = {"tactics" : []}; 
}

望ましいデータ構造(単一のキャンペーンで複数の戦術を持つことができるキャンペーンを作成しようとしています。)

$scope.campaign = { 
    "name" : "Sample Campaign",
    "tactics" : [{
        "name" : "First Tactic",
        "type" : "Email"
     }]
};
4

1 に答える 1