我有一个页面,我在按钮INSERT&上添加时间范围。 SAVE将数据发送到API并从响应集数据发送到表。但问题是,我的数据没有动态显示。我需要刷新页面来查看更改。我尝试使用$watch
,但这不起作用或我做错了。这是我的plunker。
答案 0 :(得分:3)
你犯了一些错误:
<div ng-controller="TimepickerDemoCtrl">
没有包裹整件东西ng-submit
已更改为ng-click
urbanTimeRange
是数组,您应该使用$watchCollection
而不是$watch
查看更正后的variant。
答案 1 :(得分:0)
$http
成功使用它。首先,我将新数据推送到$scope
,然后在我$watch
之后$scope
进行更改
$scope.urbanTimeRange.push(data);
$scope.$watchCollection('urbanTimeRange', function (newValue, oldValue, scope) {
}, true);
此外,当我删除时间间隔时,我使用splice
方法并在$watch
之后进行更改。在这里,我们看到index
,我从我的html中获取index
,其中我使用$index
跟踪ng-repeat中的所选项目。
这是控制器:
$scope.urbanTimeRange.splice(index, 1);
$scope.$watchCollection('urbanTimeRange', function (newValue, oldValue, scope) {
});
这是html
<tr ng-repeat='timeRange in urbanTimeRange track by $index'>
<td>{{timeRange.from_time | date:'shortTime'}}</td>
<td>{{timeRange.to_time | date:'shortTime'}}</td>
<td><angular-smartconfirm confirm="removeRow(timeRange.id, $index)"><i class="fa fa-close"></i></angular-smartconfirm></td>
</tr>