Javascript 与木偶网Require.js和子模型类型相关的主干
当我尝试在木偶模块内创建子模型时,我遇到了与主干关系相关的这个小问题。我拥有以下主干关系文档:Javascript 与木偶网Require.js和子模型类型相关的主干,javascript,backbone.js,marionette,backbone-relational,Javascript,Backbone.js,Marionette,Backbone Relational,当我尝试在木偶模块内创建子模型时,我遇到了与主干关系相关的这个小问题。我拥有以下主干关系文档: Mammal = Backbone.RelationalModel.extend({ subModelTypes: { 'primate': 'Primate', 'carnivore': 'Carnivore' }
Mammal = Backbone.RelationalModel.extend({
subModelTypes: {
'primate': 'Primate',
'carnivore': 'Carnivore'
}
});
Primate = Mammal.extend();
Carnivore = Mammal.extend();
MammalCollection = Backbone.Collection.extend({
model: Mammal
});
// Create a collection that contains a 'Primate' and a 'Carnivore'.
var mammals = new MammalCollection([
{ id: 3, species: 'chimp', type: 'primate' },
{ id: 5, species: 'panther', type: 'carnivore' }
]);
var chimp = mammals.get( 3 );
alert( 'chimp is a mammal? ' + ( chimp instanceof Mammal ) + '\n' +
'chimp is a carnivore? ' + ( chimp instanceof Carnivore ) + '\n' +
'chimp is a primate? ' + ( chimp instanceof Primate ) );
这在我这边和在我这边都很好用。黑猩猩是哺乳动物和灵长类动物的一个例子。当此代码在木偶模块内运行时,我的问题开始了,如下所示:
define(
[
"app",
"backbone-relational",
],
function(ManagerApp){
ManagerApp.module("Entities", function (Entities, ManagerApp, Backbone, Marionette, $, _) {
var Mammal = Backbone.RelationalModel.extend({
subModelTypes: {
'primate': 'Primate',
'carnivore': 'Carnivore'
}
});
var Primate = Mammal.extend();
var Carnivore = Mammal.extend();
var MammalCollection = Backbone.Collection.extend({
model: Mammal
});
// Create a collection that contains a 'Primate' and a 'Carnivore'.
var mammals = new MammalCollection([
{ id: 3, species: 'chimp', type: 'primate' },
{ id: 5, species: 'panther', type: 'carnivore' }
]);
var chimp = mammals.get( 3 );
alert( 'chimp is an animal? ' + ( chimp instanceof Mammal ) + '\n' +
'chimp is a carnivore? ' + ( chimp instanceof Carnivore ) + '\n' +
'chimp is a primate? ' + ( chimp instanceof Primate ) );
});
})
在这个例子中,我对黑猩猩和哺乳动物的例子是正确的,但对灵长类和食肉类动物是错误的。我意识到我的所有模型都应该附加到实体上,但这也不起作用,我想测试最简单的场景
为什么不创建适当的子模型 试试看