Как $ смотреть изменения из флажка ng-repeat - PullRequest
0 голосов
/ 04 февраля 2019

Рассмотрим приведенный ниже сценарий.

У меня есть div, который будет сгенерирован на основе длины массива (в данном случае это 3).

Здесь я хотел установить флажокзначение всякий раз, когда оно изменяется.Но это возможно с ng-change, но когда я нажимаю second div checkbox (первый флажок отмечен / событие переключения), теперь $watch не срабатывает.

Я хотел посмотреть значение первого флажкавсякий раз, когда это изменяется.(без использования ng-change, потому что у меня есть другой сценарий, чтобы сделать первый флажок истинным, когда второй флажок div имеет значение true. поэтому ng-change не будет работать в этом случае)

Где я пропускаю?

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
 $scope.roomIndex = 0;
 $scope.ROOMS = [
 {
 	 "name" : "abc",
   "id": 1,
 },
 {
 	 "name" : "def",
   "id": 1
 },
 {
 	 "name" : "ghj",
   "id": 1
 }
 ];
 
 $scope.$watch('room.check', function(newval, oldval){
 	console.log(newval);
 });
 
 $scope.changed = function(room){
 	console.log(room);
 }
 
 $scope.call = function(){
	
  if($scope.ROOMS[$scope.roomIndex].check){
    $scope.ROOMS[$scope.roomIndex].check =   false;
  }
  else{
  $scope.ROOMS[$scope.roomIndex].check =   true;
  }

 }
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">

<div ng-init="roomIndex = $index" ng-repeat = "room in ROOMS track by $index">
    <p>
      {{room.name}}
    </p>
    <input type="checkbox" ng-model="room.check" ng-change="changed(room)"/>
</div>
<div>
  Second div checkbox <input type="checkbox" ng-model="check2" ng-change="call(roomIndex)"/>
</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...