angularjs - Angular 删除服务?

标签 angularjs

我有一个服务“MyService”,其中包含以下内容:

this.myobj = {'dog': 'bark', 'cat': 'meow'}

我将此服务注入(inject)到指令中。在指令链接函数中,我有一个 $scope.$destroy 执行以下操作:

console.log(MyService.myobj);
delete MyService.myobj.dog;
console.log(MyService.myobj);

删除后console.log输出仍然显示为:

{'dog': 'bark', 'cat': 'meow'}

即使我在“狗”键上调用了删除。 到底是怎么回事?有没有更合适的方法来删除 key ?

最佳答案

向服务添加一个删除其属性的方法:

var myObj = {
dog: 'bark',
cat: 'meow',
delKey: function (keyName) {
    delete this[keyName];
    }
}

然后调用方法:

MyService.myobj.delKey('dog');

如果您希望为该服务分配一个可以对该服务中的任何对象进行操作的方法:

myObj: {
            dog: 'bark',
            cat: 'meow'
        },
delKey: function (obj, key) {
            delete this[obj][key];
        }

你可以查看这个plnkr:

http://plnkr.co/edit/f0ousH69sAm3Kdr36kNJ

关于angularjs - Angular 删除服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528053/

相关文章:

javascript - 如何在 AngularJS 中追加 Json 字符串

css - GH 页面看不到我的图像的路径

javascript - 如何使文本留在 div 框内并在到达 div 框的边缘时继续下一行?

javascript - ionic select 不更新依赖于范围变量的函数

javascript - 分组条形图 ChartJS

javascript - 将 angularjs 代码从 1.0.3 升级到 1.4.9

javascript - 发送带 Angular 表格

javascript - 在 Angular 引导 datetimepicker 中禁用所有以前的日期

jquery - 将 Jquery UI 插件与 Angular 结合使用

javascript - 数组未绑定(bind)到使用 AngularJs 选择