Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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
Javascript 在保留绑定的同时连接集合_Javascript_Angularjs_Angularjs Ng Repeat_Plunker - Fatal编程技术网

Javascript 在保留绑定的同时连接集合

Javascript 在保留绑定的同时连接集合,javascript,angularjs,angularjs-ng-repeat,plunker,Javascript,Angularjs,Angularjs Ng Repeat,Plunker,我的控制器中有两个数组,第三个数组由前两个数组连接而成 var app = angular.module('app', []); var MainController = app.controller('MainController', function($scope) { $scope.dogs = ['Beagle', 'Poodle', 'Boxer']; $scope.cats = ['Maine Coon', 'Ragdoll', 'Bengal']; $scope.pe

我的控制器中有两个数组,第三个数组由前两个数组连接而成

var app = angular.module('app', []);

var MainController = app.controller('MainController', function($scope) {
  $scope.dogs = ['Beagle', 'Poodle', 'Boxer'];
  $scope.cats = ['Maine Coon', 'Ragdoll', 'Bengal'];
  $scope.pets = $scope.dogs.concat($scope.cats);

  $scope.createDog = function() {
    $scope.dogs.push('Rottweiler');
  };
});
然后,我使用
ng repeat
输出所有这些数据

<h3>Dogs ({{dogs.length}})</h3>
<ul>
  <li ng-repeat="dog in dogs">{{dog}}</li>
</ul>
<button ng-click="createDog()">Add a dog</button>
<hr>
<h3>Cats ({{cats.length}})</h3>
<ul>
  <li ng-repeat="cat in cats">{{cat}}</li>
</ul>
<hr>
<h3>Pets ({{pets.length}})</h3>
<ul>
  <li ng-repeat="pet in pets">{{pet}}</li>
</ul>
Dogs({{Dogs.length}})
  • {{dog}
加一只狗
猫({{Cats.length}})
  • {{cat}

宠物({Pets.length}})
  • {{pet}
当我单击按钮并将一只狗添加到
$scope.dogs
数组时,宠物列表永远不会更新


如何在保留angular的绑定的同时合并两个对象集合,以便更新pets?

您可以通过将$scope.pets定义为函数来解决此问题,使其成为表达式,并在更新其中使用的$scope变量时进行更新:


您可以通过将$scope.pets定义为函数来解决此问题,使其成为一个表达式,并在更新中使用的$scope变量时进行更新:


您可以通过将$scope.pets定义为函数来解决此问题,使其成为一个表达式,并在更新中使用的$scope变量时进行更新:


您可以通过将$scope.pets定义为函数来解决此问题,使其成为一个表达式,并在更新中使用的$scope变量时进行更新:

这项工作:

要更新宠物,请将JS函数更改为

$scope.createDog = function() {
   $scope.dogs.push('Rottweiler');
   $scope.pets = $scope.dogs.concat($scope.cats);
})

因为你用的是同一个名字罗威纳'。由于创建了重复项,因此不会在屏幕上通过ng repeat进行渲染,因此请使用

对于狗

<li ng-repeat="dog in dogs track by $index">{{dog}}</li>
  • {{dog}
  • 对于宠物

    <li ng-repeat="pet in pets track by $index">{{pet}}</li>
    
  • {{pet}
  • 这项工作:

    要更新宠物,请将JS函数更改为

    $scope.createDog = function() {
       $scope.dogs.push('Rottweiler');
       $scope.pets = $scope.dogs.concat($scope.cats);
    
    })

    因为你用的是同一个名字罗威纳'。由于创建了重复项,因此不会在屏幕上通过ng repeat进行渲染,因此请使用

    对于狗

    <li ng-repeat="dog in dogs track by $index">{{dog}}</li>
    
  • {{dog}
  • 对于宠物

    <li ng-repeat="pet in pets track by $index">{{pet}}</li>
    
  • {{pet}
  • 这项工作:

    要更新宠物,请将JS函数更改为

    $scope.createDog = function() {
       $scope.dogs.push('Rottweiler');
       $scope.pets = $scope.dogs.concat($scope.cats);
    
    })

    因为你用的是同一个名字罗威纳'。由于创建了重复项,因此不会在屏幕上通过ng repeat进行渲染,因此请使用

    对于狗

    <li ng-repeat="dog in dogs track by $index">{{dog}}</li>
    
  • {{dog}
  • 对于宠物

    <li ng-repeat="pet in pets track by $index">{{pet}}</li>
    
  • {{pet}
  • 这项工作:

    要更新宠物,请将JS函数更改为

    $scope.createDog = function() {
       $scope.dogs.push('Rottweiler');
       $scope.pets = $scope.dogs.concat($scope.cats);
    
    })

    因为你用的是同一个名字罗威纳'。由于创建了重复项,因此不会在屏幕上通过ng repeat进行渲染,因此请使用

    对于狗

    <li ng-repeat="dog in dogs track by $index">{{dog}}</li>
    
  • {{dog}
  • 对于宠物

    <li ng-repeat="pet in pets track by $index">{{pet}}</li>
    
  • {{pet}

  • 一种方法是使用
    $watch
    。一种方法是使用
    $watch
    。一种方法是使用
    $watch
    。一种方法是使用
    $watch