DF_*_*DF_ 3 javascript ember.js
我正在将代码升级到V4,但在复制对象时遇到了问题.我想我显然已经实现了Em.Copyable接口,但我无法使用Em.Copy,所以我在控制台中出错了.我做错了什么?我已经设置了一个简单的jsfiddle来显示我遇到的问题.我确定我只是遗漏了一些东西,但是文档已经完全改变了,而且没有任何日期的例子了.
拿这个对象:
App.Key = Em.Object.create(Em.Copyable, {
first: 1,
second: 2
});
Run Code Online (Sandbox Code Playgroud)
这个事件(在jsfiddle中它是一个按钮,但它可以是任何东西):
doClick: function () {
var k = Em.copy(App.Key);
}
Run Code Online (Sandbox Code Playgroud)
收到以下错误消息并停止代码执行:
Error: assertion failed: Cannot clone an Ember.Object that does not implement Ember.Copyable
Run Code Online (Sandbox Code Playgroud)
Ember Object.create()最近发生了变化,它不再支持mixins.还有一些选择.最常见的是在扩展ember对象时添加mixins.例如:
App.Key = Em.Object.extend(Em.Copyable);
App.key = Em.Object.create({
first: 1,
second: 2
});
Run Code Online (Sandbox Code Playgroud)
如果你真的想在创建过程中使用add mixins,你可以使用新createWithMixins方法:
App.key = Em.Object.createWithMixins(Em.Copyable, {
first: 1,
second: 2
});
Run Code Online (Sandbox Code Playgroud)
既然你的对象有了Mixin,你会发现这个例子仍然失败了:Object [object Object] has no method 'copy'.这是因为Em.Copyable mixin实际上并没有提供实现 - 它只是向Ember发信号通知你的对象支持copy操作.您仍然需要copy在类上实现该方法.
| 归档时间: |
|
| 查看次数: |
3012 次 |
| 最近记录: |