Czesc, zastanawiam sie nad najlepszym sposobem do modyfikowania kilku obiektow (np. w tablicy) przy pomocy jednego eventu (np. w ng-repeat). Podam przyklad:
function ParentController($scope) {
this.data = [/* obiekty ..*/] // jakas tablica obiektow
$scope.$on('emitEvent',() => {
// sposob 1.
this.data.map(fn) // fn - jakies tam modyfikacje, dzieki czemu mozemy zmienic caly obiekt.
// sposob 2.
$scope.$broadcast('broadCastEvent');
})
}
function ChildController($scope) {
this.multiActive = function() { // jesli chce pojedynczy klikniety obiekt to this.data nam go wyrzuci ale nie o to chodzi
$scope.$emit('emitEvent');
}
//sposob 2.
$scope.$on('broadCastEvent',fn) fn - jakies modyfikacje, dzieki czemu lapiemy znow wszystkie obiekty
}
<!-- app-->
<div ng-repeat="data in ParentController.data">
<div child-component data="data"></div>
</div>
<!-- child-component -->
<div>
{{ChildController.data.isActive ? 'active' : null}}
<button ng-click="ChildController.multiActive()"></button>
</div>
Chcialbym uzyskac jak najlepszy, najbardziej clean sposob. Oczywiscie mozna to tez zrobic callbackiem z poziomu child componentu, ale dalsza procedura jest taka sama. Nie wiem czy jest to najlepszy sposob na to dlatego szukam pomocy u bardziej doswiadczonych.