我正在使用Ember.js中的灯具适配器。
此:
let cars = DS.Model.extend({
make: attr('string'),
model: attr('string'),
year: attr('string'),
FIXTURES: [
{
id: 1,
model: 'foo',
make: 'bar',
year: '2001'
}
]
});
引发“无法找到固定装置”
鉴于此:
let cars = DS.Model.extend({
make: attr('string'),
model: attr('string'),
year: attr('string'),
});
cars.reopenClass({
FIXTURES: [
{
id: 1,
model: 'foo',
make: 'bar',
year: '2001'
}
]
});
效果很好。我希望它们是相同的,但有什么区别?
答案 0 :(得分:0)
使用reopenClass
,你可以在课堂上放置一些东西而不是实例。
因此,如果您有课程,并执行reopen
和reopenClass
:
const MyClass = Ember.Object.extend({
foo: 'foo'
})`;
myClass.reopen({
bar: 'bar'
});
myClass.reopenClass({
baz: 'baz'
});
然后创建一个实例
const myInstance = MyClass.create({});
然后,您可以在实例上访问foo
和bar
:
myInstance.get('foo'); // foo
myInstance.get('bar'); // bar
但是`baz关于班级本身:
myClass.get('baz'); // baz