我有以下用户哈希:
{"A1": {name: "Demo-1", status: "active"}, "A2": {name: "Demo-2", status: "deactive"}};
我有两个主动/非主动用户哈希,我将每个用户的表格如下:
<tr ng-repeat="(id, user) in deactiveUsers">
<td>
{{ user.name }}
</td>
<td>
<button type="button" ng-click="change(id)">Active</button>
</td>
</tr>
如果我点击Active
按钮,我会从deactiveUsers
中移除该对象,并将其添加到activeUsers
,change
功能中,如下所示:
$scope.change = function(id){
if($scope.users[id].status == "active"){
delete $scope.activeUsers[id];
$scope.users[id].status = "deactive";
$scope.deactiveUsers[id] = $scope.users[id];
}else{
delete $scope.deactiveUsers[id];
$scope.users[id].status = "active";
$scope.activeUsers[id] = $scope.users[id];
}
}
这是我的demo,如果我在plnkr上尝试它,它运作良好。但是在我的localhost上,删除只是工作,当我添加activeUsers
时,DOM元素不会使用新记录进行更新。
我无法找到问题所在。
如何添加Hash以动态更新DOM元素?
为什么它在plnkr上工作,但是相同的代码不能在localhost上工作?
答案 0 :(得分:3)
DOM中有多个body标签。我认为第一个(在第一个表元素之后)导致其他角度指令在app之外。 用tbody元素替换表元素中的主体。
编辑问题的所有者
我的错误是我开发了以下表格:
<div class="panel panel-primary" ng-controller="ExampleCtrl">
<table></table>
</div>
<div class="panel panel-primary" ng-controller="ExampleCtrl">
<table></table>
</div>
所以,我两次打电话给ng-controller
,我通过为两者开发一个div来修复它,如下所示:
<div ng-controller="ExampleCtrl">
<div class="panel panel-primary">
<table></table>
</div>
<div class="panel panel-primary">
<table></table>
</div>
</div>