0

今天我在开发 ember 时在一个奇怪的错误上浪费了几个小时

我自信地忽略了 Ember 扩展方式

App.SomeModel = DS.Model.extend()

不知何故变成了我喜欢的方式

class App.SomeModel extends DS.Model()

我的第二种方法没有奏效。所以我想知道这两者之间有什么区别以及为什么第二种方式在 Ember 中不起作用(因为两种方式都在 Backbone 中起作用)

4

2 回答 2

0
App.SomeModel = DS.Model.extend()

这调用了 Ember.js 自己的 Object 扩展方法,该方法添加观察者,重新打开一个类等等。

class App.SomeModel extends DS.Model()

不依赖于框架,在纯 javascript 中,它为“Somemodel”分配“DS.Model()”对象的属性。预计不会在扩展 Ember.Object 的框架内工作

于 2013-09-06T20:52:30.010 回答
0

看看 EmberScript

http://emberscript.com/

关键的区别在于Classextends直接编译成Ember等价物,而不是试图让 Coffeescript 的想法适合 Ember。

class SomeModel extends Ember.Object

变成

var SomeModel;
var get$ = Ember.get;
var set$ = Ember.set;
SomeModel = Ember.Object.extend();
于 2013-09-06T06:03:47.183 回答