我们都知道我们有get
和set
在烬中,但你怎么delete
在一个emberjs对象的关键?如何删除emberjs中的密钥?
假定物体看起来像这样
Ember.Object.create({
conf: {
name: 'John',
age: 16
}
});
在数据传输,我需要从conf
删除密钥,比方说age
。你如何做到这一点从conf
正确删除一个密钥?我试过set('conf.age', null)
或undefined
,但似乎根本没有工作。
编辑
背景的一点点。当我说它不适用于将它设置为undefined或null时,这意味着它不适合我的需要。我的课程将自动将conf
数据保存到Mongo收藏中。所以,假设现在你有一个未使用的密钥,并且你想要删除它,你如何删除它?
请注意,有一个更大的类管理保存过程/数据验证,所以扩展控制器只是为了做删除不太适合(丑陋)。这个扩展类可以挂接的beforeSave
动作来清理未使用的密钥,但问题在于如何删除此密钥?
这似乎是这样一个简单的动作烬不存在,可能是处理所有类型的结合/观察员..
当你说set('conf.age',undefined)根本不工作,你的意思是Object.get(“conf.age”)返回16而不是未定义的,即使设置为undefined? – 2013-03-12 10:22:21
这有一个原因。这个'conf'将通过一些通用检查保存到数据库中。我希望这个'conf.age'不会被保存到数据库中。现在我将它设置为undefined,但它在db中显示为'conf.age:'''。 – 2013-03-14 10:18:39
为什么你需要删除一个密钥?基本上,当你发布到你的服务器{name:'John',age:undefined}时,你可以在params ['age']值上添加一个服务器端验证,如果它未定义则不做任何事情,否则修改一个新的年龄,或者可能是我没有正确理解你的问题?或者你的意思是你删除了一个模型在客户端的密钥,它应该删除服务器端模型的相应属性(mongo对象)? – 2013-03-14 10:31:51