2015-04-01 11 views
5

Ho una semplice tabella con tre righe e due valori per ogni riga - data e statali:angolare Azione JS on one-cambiamento select discesa

<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> 

Così, semplici valori di data e di stato per rosso, verde e blu. Uno in elenco a discesa - stato, il secondo - solo la data di uscita.

Per modificare il valore di selezione, è necessario aggiornare la data con la data odierna.

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

E 'possibile avere una funzione come ng-change="change();" Non è possibile inviare con ng-modificare l'ID ...

+1

Perché non può? Puoi inviare ID come argomento nel metodo update() come ng-change = "update ('red')" qual è il problema in realtà? – Samir

+0

Mmm ... si, e come posso aggiornare la data? se è $ scope.item.redDate? In JS avrò qualcosa di simile var date = id + 'Date' –

+1

Ti piace questo $ scope.item [id + 'Date'] = new Date(); – Samir

risposta

9

Un ringraziamento speciale a Samir Das con l'aiuto per trovare la soluzione ng- cambiare = "aggiornamento (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> 

Ecco il controllore:

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