为什么从 Angular 服务中的对象中删除此元素不起作用
Why removing this element from an object inside an Angular service doesn't work?
我正在使用Angularjs创建一个应用程序,并且我正在尝试使用对象作为数组容器;所以我有objects->array->objects。我知道,我可以改用数组作为容器,但它似乎无法以这种方式正常工作。我有一个包含对象的服务,以及两种添加和删除条目的方法。添加效果很好,但删除不起作用,即使我查看控制台并且输出为真($log.log(删除人员[人]);)..
var app = angular.module('app', []);
app.controller('appController', function($log, $scope, MyService){
$scope.users = MyService.getPersons();
$scope.addEntry = function(){
MyService.addEmail($scope.newPerson, $scope.newEmail);
};
$scope.deleteEntry = function(){
MyService.deleteEmail($scope.personDelete);
};
});
angular.module('app').service('MyService', function($log){
var persons = {};
this.addEmail = function(person, email){
persons[person] = persons[person]? persons[person] : [];
persons[person].push({id: email});
};
this.deleteEmail = function(person){
//$log.log(delete persons[person]); <-- it's true!
delete persons[person];
};
this.getPersons = function(){
return persons;
};
});
这是普伦克
尔https://plnkr.co/edit/yElSTpo4lsKz1VnIIGRx?p=preview
TD 元素上的 ngModel 没有意义,也没有任何作用。只需将person
对象传递给 deleteEntry 方法:
<tbody ng-repeat="(person, emails) in users">
<tr ng-repeat="email in emails">
<td>{{person}}</td>
<td>{{email.id}}</td>
<td>
<button ng-click="deleteEntry(person)">delete</button>
</td>
</tr>
</tbody>
在控制器中:
$scope.deleteEntry = function(person) {
MyService.deleteEmail(person);
};
演示:https://plnkr.co/edit/q7HF4aaRGh0Cxq7yWqZz?p=preview
相关文章:
- 从组件状态的数组中删除元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 正则表达式条件来删除元素
- 使用javascript删除元素时出现的问题
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- 从角度数组中删除元素
- AngularJs localStorage在循环中删除元素
- 在使用jquery插入之前删除元素
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 更新分组条形图(转换或删除元素组)
- 向下滚动后如何用同一类逐个删除元素
- 如何防止 jQuery 事件在删除元素时冒泡
- 从jQuery对象中删除元素
- 如何删除元素的结束标记,添加一些文本,然后重新添加标记
- 从画布中删除元素
- 如何解析html以删除元素并只返回其位置的标题
- 使用 V8 从密集数组中删除元素的最佳方法是什么
- 如何使用jquery删除元素
- 根据成员属性从数组中删除元素
- 从中删除元素'的父元素,并将其附加到其他元素