今天我在开发余烬时浪费了几个小时的奇怪错误
我自信地忽略了Ember延伸方式
App.SomeModel = DS.Model.extend()
并以某种方式变成了我喜欢的方式
class App.SomeModel extends DS.Model()
我的第二种方式不起作用。所以我想知道这两者之间有什么区别以及为什么第二种方式在Ember中不起作用(Cuz'两种方式都在Backbone中工作)
答案 0 :(得分:0)
看看EmberScript
关键区别在于Class
和extends
直接编译为Ember
等价物,而不是试图使Coffeescript的想法与Ember相符。
class SomeModel extends Ember.Object
变为
var SomeModel;
var get$ = Ember.get;
var set$ = Ember.set;
SomeModel = Ember.Object.extend();
答案 1 :(得分:0)
App.SomeModel = DS.Model.extend()
这会调用Ember.js自己的Object扩展方法,它会添加观察者,重新打开一个类等等。
class App.SomeModel extends DS.Model()
不依赖于框架,在普通的javascript中,它将“Somemodel”分配给“DS.Model()”对象的属性。它不会在扩展Ember.Object的
框架内工作