Lio*_*han 3 javascript ember.js
我们都知道我们拥有get
和set
使用它,但你如何delete
成为一个emberjs对象的关键?
假设一个对象看起来像这样
Ember.Object.create({
conf: {
name: 'John',
age: 16
}
});
Run Code Online (Sandbox Code Playgroud)
在数据传输过程中,我需要删除一个密钥conf
,比方说age
.你怎么做才能正确删除密钥conf
?我试过了set('conf.age', null)
,undefined
但似乎根本没有工作.
编辑
一点点背景.当我说它不能用于设置undefined或null时,这意味着它不适合我的需要.我的类自动将conf
数据保存到Mongo集合中.所以,现在假设您有一个未使用的密钥,您想要删除它,如何删除它?
请注意,有一个更大的类来管理保存过程/数据验证,因此扩展控制器只是为了删除不太合适(丑陋).并且有beforeSave
一个扩展类可以挂钩来清理未使用的键的操作,但问题是如何删除此键?
貌似这样一个简单的动作在ember中不存在,可能是为了处理所有类型的绑定/观察者.
如果在ember对象上设置属性:
this.set('myObject.keyA', [1,2,3]);
Run Code Online (Sandbox Code Playgroud)
它现在将跟踪该密钥
Ember.keys('myObject'); // will show ['keyA'];
Run Code Online (Sandbox Code Playgroud)
您不能通过将其设置为null来删除密钥
this.set('myObject.keyA', null);
Run Code Online (Sandbox Code Playgroud)
以来
Ember.keys('myObject'); // will STILL show ['keyA'];
Run Code Online (Sandbox Code Playgroud)
而只是将其删除为javascript对象
delete this.get('myObject').keyA;
Run Code Online (Sandbox Code Playgroud)
然后确认钥匙不见了
Ember.keys('myObject'); // will show [] an empty array;
Run Code Online (Sandbox Code Playgroud)