我正在尝试扩展模型,但我无法弄清楚如何做到这一点。
假设我想要TodoMVC中的2种不同的待办事项 第一个将添加一个网址,第二个将添加一个段落。(示例)
这就是我的想法:
Todos.Todo = DS.Model.extend({
title: DS.attr('string'),
isCompleted: DS.attr('boolean')
});
Todos.Todo.FIXTURES = [
{
id: 1,
title: 'Learn Ember.js',
isCompleted: true,
},
{
id: 2,
title: '...',
isCompleted: false,
},
{
id: 3,
title: 'Profit!',
isCompleted: false,
}
];
Todos.TodoURL = Todos.Todo.extend({
url: 'google.com',
});
Todos.TodoParagraph = Todos.Todo.extend({
paragraph: 'Lorum...',
});
但是这给了我Assertion failed: Unable to find fixtures for model type Todos.TodoURL
我找到了reopen
函数,但是没有为我的模型提供get和set函数。
答案 0 :(得分:2)
这是因为ember-data
正在尝试使用Todos.TodoURL.FIXTURES
和Todos.TodoParagraph.FIXTURES
检索您的灯具。但是当你扩展类时,这些属性不会被继承。要使静态方法和属性继承,您应该使用reopenClass:
Todos.Todo.reopenClass({
FIXTURES: [
{
id: 1,
title: 'Learn Ember.js',
isCompleted: true,
},
{
id: 2,
title: '...',
isCompleted: false,
},
{
id: 3,
title: 'Profit!',
isCompleted: false,
}
]
});
我希望它有所帮助
答案 1 :(得分:0)
您必须将Fixtures或REST-Adapter修改为Todos.TodoURL和TodoParagraph。那将是有效的。 Ember Data从类的名称获取要转到的URL,因此当您检索TodoURL时,它将调用/ todoUrl /.