AngularJS 和 DOM 中的.add()方法有区别吗?我在 AngularJS 应用程序中使用.add()并且遇到了将数据推送到 firebase 的 *问题。当我查看文档进行一些研究时,我在 AngularJS 文档中没有发现任何关于此方法的信息。我发现DOM 中的.add()用于向选择添加选项(例如 Object_of_Select.add(option, before);)。但这并不能真正将 IMO 转化为我在 AngularJS 中的使用方式。
*我遇到的问题:我对 Firebase 和持久数据没有任何问题,它超级简单而且很棒。但是,当我获取一个对象(在此示例中为“活动”)并将对象推入对象的嵌套数组(“策略”)时,我遇到了问题。第二次添加本地数据后,我无法再将该数据“添加”到 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"
}]
};