web-dev-qa-db-fra.com

Angular JS Action on ng-change the select dropdown

J'ai un tableau simple avec trois lignes et deux valeurs pour chaque ligne - date et état:

<tbody>
   <tr>
      <td>Red</td>
        <td class="lastModified">{{item.redDate}}</td>
        <td class="status"> 
            <select id ="red" class="form-control" ng-change="update();" ng-model="item.redStatus">
              <option value="" disabled="" selected="" class="ng-binding">Please select the value</option>
              <option ng-selected="step.value === item.redStatus"  ng-repeat="(key, step) in steps">{{ step.title }}</option>
            </select>
       </td>
   </tr>
   <tr>Green</tr>
   <tr>
     ....
   </tr>                    
</tbody>

Ainsi, des valeurs de date et d'état simples pour le rouge, le vert et le bleu. Un dans la liste déroulante - état, le second - juste la date de sortie.

Lors du changement de la valeur sélectionnée - j'ai besoin de mettre à jour la date avec la date d'aujourd'hui.

 `$scope.item.redDate = new Date();`

Est-il possible d'avoir une fonction comme ng-change="change();" Impossible d'envoyer avec ng-change l'ID ...

7
Sam Lewis

Un merci spécial à Samir Das avec de l'aide pour trouver la solution ng-change = "update (id);":

<select id ="red" class="form-control" ng-change="update(id);" ng-model="item.redStatus">
          <option value="" disabled="" selected="" class="ng-binding">Please select the value</option>
          <option ng-selected="step.value === item.redStatus"  ng-repeat="(key, step) in steps">{{ step.title }}</option>
 </select>

Voici le contrôleur:

$scope.update = function(id){
    id = event.target.id;
    $scope.item[id+'Date'] = new Date();
 };
13
Sam Lewis