角度删除服务?

时间:2015-04-09 01:13:30

标签: angularjs

我有一项服务" MyService"包含以下内容:

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

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

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

console.log输出看起来像删除后仍然显示为:

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

即使我在“狗”上打电话删除了“#”。键。 到底是怎么回事?有没有更合适的方法来删除密钥?

1 个答案:

答案 0 :(得分:3)

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

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