I have a simple table with three rows and two values for each row - date and state:
<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>
So, simple date and status values for red, green and blue. One in dropdown - status, the second - just output date.
On change the select value - i need to update the date with today's date.
`$scope.item.redDate = new Date();`
Is it possible to have one function like ng-change="change();"
Can't send with ng-change the ID...
Special thanks to Samir Das with help to find the 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>
Here is the controller:
$scope.update = function(id){
id = event.target.id;
$scope.item[id+'Date'] = new Date();
};
来源:https://stackoverflow.com/questions/29396801/angular-js-action-on-ng-change-the-select-dropdown