コントローラーには 2 つの配列があり、最初の 2 つの配列を連結して形成される 3 つ目の配列があります。
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>
ボタンをクリックして$scope.dogs
配列に犬を追加すると、ペットのリストが更新されません。
ペットが更新されるように、Angular のバインディングを保持しながらオブジェクトの 2 つのコレクションを連結するにはどうすればよいですか?