我将 Ember 1.0.0 版与 Ember Data v1.0.0-beta.3 结合使用。问题是,在向关系添加一些附加属性时,我似乎无法获得对模型的有效引用。我将举一个例子来说明我想要完成的事情,因为我觉得很难解释。
首先,我的模型是这样连接的:
App.Employee = DS.Model.extend({
firstName: DS.attr("string"),
lastName: DS.attr("string"),
languages: DS.hasMany("language", { async: true })
});
App.Language = DS.Model.extend({
name: DS.attr("string"),
employee: DS.belongsTo("employee")
});
目前,我正在使用固定装置,但稍后我打算使用 RESTAdapter。这就是我的 JSON 的样子:
App.Employee.FIXTURES = [
{
id: 1,
firstName: "Alpha",
lastName: "Dog",
languages: [1, 2]
},
{
id: 2,
firstName: "Bravo",
lastName: "Cat",
languages: [3]
}
];
App.Language.FIXTURES = [
{
id: 1,
name: "German"
},
{
id: 2,
name: "Spanish"
},
{
id: 3,
name: "Russian"
}
];
现在这可行,但我想做的是向 Employee 模型中的语言键添加其他信息。像这样,将语言属性替换为:
languages: [
{
id: 1,
knowledge: 3
},
{
id: 2,
knowledge: 2
}
]
我添加了一个关于语言的额外知识字段,指定的 id 必须引用 Language 模型中的 id。运行它会给我一个 TypeError(无法调用未定义的方法 'toString')。
那么我该如何建模/解决这个问题?当我遇到这些术语时,这可以使用多态关系或序列化程序来完成吗?我已经找了很长时间了,这个(新的)框架让我越来越困惑。