今天我在开发 ember 时在一个奇怪的错误上浪费了几个小时
我自信地忽略了 Ember 扩展方式
App.SomeModel = DS.Model.extend()
不知何故变成了我喜欢的方式
class App.SomeModel extends DS.Model()
我的第二种方法没有奏效。所以我想知道这两者之间有什么区别以及为什么第二种方式在 Ember 中不起作用(因为两种方式都在 Backbone 中起作用)
今天我在开发 ember 时在一个奇怪的错误上浪费了几个小时
我自信地忽略了 Ember 扩展方式
App.SomeModel = DS.Model.extend()
不知何故变成了我喜欢的方式
class App.SomeModel extends DS.Model()
我的第二种方法没有奏效。所以我想知道这两者之间有什么区别以及为什么第二种方式在 Ember 中不起作用(因为两种方式都在 Backbone 中起作用)
App.SomeModel = DS.Model.extend()
这调用了 Ember.js 自己的 Object 扩展方法,该方法添加观察者,重新打开一个类等等。
class App.SomeModel extends DS.Model()
不依赖于框架,在纯 javascript 中,它为“Somemodel”分配“DS.Model()”对象的属性。预计不会在扩展 Ember.Object 的框架内工作
看看 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();