У меня проблема с модификацией вложенного свойства. Как просмотреть эти вложенные свойства в массиве task.history? Или как изменить $ scope. $ Watch?AngularJS 1.x update вложенное свойство
Вот плункер. Нажмите keyboard_arrow_up значок. http://plnkr.co/edit/ZCIU5gNwWfWdIOnz0ykb
<body ng-controller="EditController as ec">
<!-- task history -->
<table>
<thead>
<tr>
<th>Date</th>
<th>From</th>
<th>To</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in ec.task.history">
<td>{{ item.startTime | date:'yyyy-MM-dd'}}</td>
<td>
<div>
<div>
<i class="material-icons" ng-click="ec.addHour(item.startTime)">keyboard_arrow_up</i>
<p style="margin: 0px 0px 0px 0px">{{ item.startTime | date:'HH'}}</p>
<i class="material-icons" ng-click="ec.substractHour()">keyboard_arrow_down</i>
</div>
<div>
<p style="margin: 0px 0px 0px 0px">:</p>
</div>
<div>
<i class="material-icons">keyboard_arrow_up</i>
<p style="margin: 0px 0px 0px 0px">{{ item.startTime | date:'mm'}}</p>
<i class="material-icons">keyboard_arrow_down</i>
</div>
</div>
</td>
<td>{{ item.stopTime | date:'HH:mm:ss '}}</td>
<td>{{ item.dt | formatDuration }}</td>
</tr>
</tbody>
</table>
функции EditController ...
function addHour(timestamp) {
console.log(timestamp);
var tmp = new Date(timestamp);
tmp.setHours(tmp.getHours() + 1);
timestamp = tmp.toISOString();
}
$scope.$watch(angular.bind(self.task.history, function() {
return self.task.history;
}), function(oldVal, newVal) {
console.log(oldVal);
console.log(newVal);
}, true);
что такое 'task.history'? –
Arrayy таких объектов, как: {"startTime": "2016-12-22T13: 18: 36.062Z", "stopTime": "2016-12-22T13: 19: 42.100Z", "_ id": "585bd2ee9f2fee2f28e2551f", " dt ": 66.038}, – miuosh
, где вы это заявили? –