Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS中的.add()与DOM中的.add()有区别吗?_Dom_Angularjs_Firebase_Angularfire - Fatal编程技术网

AngularJS中的.add()与DOM中的.add()有区别吗?

AngularJS中的.add()与DOM中的.add()有区别吗?,dom,angularjs,firebase,angularfire,Dom,Angularjs,Firebase,Angularfire,AngularJS中的.add()方法与DOM中的方法有区别吗?我在AngularJS应用程序中使用.add(),将数据推送到firebase时遇到*问题。当我查看文档进行一些研究时,我在AngularJS文档中没有发现关于此方法的任何内容。我发现DOM中的.add()用于向select添加一个选项(例如对象\u of_select.add(option,before);)。但这并不能真正解释我在AngularJS中是如何使用它的 *我遇到的问题是: 我对Firebase和持久化数据没有任何问题

AngularJS中的.add()方法与DOM中的方法有区别吗?我在AngularJS应用程序中使用.add(),将数据推送到firebase时遇到*问题。当我查看文档进行一些研究时,我在AngularJS文档中没有发现关于此方法的任何内容。我发现DOM中的.add()用于向select添加一个选项(例如对象\u of_select.add(option,before);)。但这并不能真正解释我在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)"-->
所需的数据结构(我正在尝试创建可以在单个战役中使用多种战术的战役。)


add
既不是角度方法,也不是DOM方法。这是angularFireCollection提供的一种方法。angularFireCollection显式同步数据,这意味着调用
$scope.campaits.tractics.push
不足以将数据发送到Firebase

你基本上有两个选择。您可以使用
angularFire
服务,该服务将在数据发生本地更改时自动同步数据

控制器

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

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

        // SAMPLE DATA SET
        $scope.campaign = {"tactics" : []}; 
}
function scopeAssignments($scope, angularFire){
    $scope.tactics = angularFire(fbTactics);
    $scope.campaigns = angularFire(fbCampaigns);
    $scope.campaign = $scope.campaigns[campaignID];
    $scope.campaign.tactics = [];
}
$scope.addTactic = function(campaign, tactic) {
  $scope.campaign.tactics.push({'name': tacticSelect, 'type': 'email'});
  $scope.campaigns.update($scope.campaign);
}
如果要坚持使用angularFireCollection,则必须在希望将某些数据发送到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" : []}; 
}
function scopeAssignments($scope, angularFire){
    $scope.tactics = angularFire(fbTactics);
    $scope.campaigns = angularFire(fbCampaigns);
    $scope.campaign = $scope.campaigns[campaignID];
    $scope.campaign.tactics = [];
}
$scope.addTactic = function(campaign, tactic) {
  $scope.campaign.tactics.push({'name': tacticSelect, 'type': 'email'});
  $scope.campaigns.update($scope.campaign);
}

add
既不是角度方法,也不是DOM方法。这是angularFireCollection提供的一种方法。angularFireCollection显式同步数据,这意味着调用
$scope.campaits.tractics.push
不足以将数据发送到Firebase

你基本上有两个选择。您可以使用
angularFire
服务,该服务将在数据发生本地更改时自动同步数据

控制器

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

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

        // SAMPLE DATA SET
        $scope.campaign = {"tactics" : []}; 
}
function scopeAssignments($scope, angularFire){
    $scope.tactics = angularFire(fbTactics);
    $scope.campaigns = angularFire(fbCampaigns);
    $scope.campaign = $scope.campaigns[campaignID];
    $scope.campaign.tactics = [];
}
$scope.addTactic = function(campaign, tactic) {
  $scope.campaign.tactics.push({'name': tacticSelect, 'type': 'email'});
  $scope.campaigns.update($scope.campaign);
}
如果要坚持使用angularFireCollection,则必须在希望将某些数据发送到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" : []}; 
}
function scopeAssignments($scope, angularFire){
    $scope.tactics = angularFire(fbTactics);
    $scope.campaigns = angularFire(fbCampaigns);
    $scope.campaign = $scope.campaigns[campaignID];
    $scope.campaign.tactics = [];
}
$scope.addTactic = function(campaign, tactic) {
  $scope.campaign.tactics.push({'name': tacticSelect, 'type': 'email'});
  $scope.campaigns.update($scope.campaign);
}

阿南特,首先谢谢你回复我。您为使用Firebase平台的开发人员提供反馈和帮助的努力不仅对您本人,而且对Firebase公司也有很大的影响。其他公司/项目应予以注意。关于你的回答。当你说这是一种自动对焦的方法时,我终于弄明白了。当我意识到正在使用“表面下推”时,我对我的模式进行了一些调整以适应这种情况。最好能举一些例子,并将它们添加到文档中。再次感谢!谢谢你的好话!我将在angularFire问题列表中添加一项,以确保我们更好地记录这一点。很高兴你能成功。阿南特,首先谢谢你回复我。您为使用Firebase平台的开发人员提供反馈和帮助的努力不仅对您本人,而且对Firebase公司也有很大的影响。其他公司/项目应予以注意。关于你的回答。当你说这是一种自动对焦的方法时,我终于弄明白了。当我意识到正在使用“表面下推”时,我对我的模式进行了一些调整以适应这种情况。最好能举一些例子,并将它们添加到文档中。再次感谢!谢谢你的好话!我将在angularFire问题列表中添加一项,以确保我们更好地记录这一点。很高兴你能成功。