2016-08-23 17 views
0

我有两个使用相同字段的独立架构。我试图创建schemaComponents,以便我可以在一个位置更新两个模式,但是我得到一个错误Error: Invalid definition for school.$ field。当我使用它。我不确定我在这里做错了什么,我在这个允许的印象之下。重复使用相同字段时的架构错误

路径:SchemaComponents.js

SchemaComponents = { 
    schools: { 
    type: [String], 
    optional: true, 
    autoform: { 
     options: [ 
     {label: "School One", value: 'SchoolOne'}, 
     {label: "School Two", value: 'SchoolTwo'}, 
     {label: "School Three", value: 'SchoolThree'}, 
     ] 
    } 
    } 
}; 

路径:StudentSchema.js

import from '../components/SchemaComponents.js'; 
StudentSchema = new Mongo.Collection("studentSchema"); 

var Schemas = {}; 

Schemas.StudentSchema = new SimpleSchema({ 
    school: SchemaComponents.schools, 
}); 

StudentSchema.attachSchema(Schemas.StudentSchema); 

路径:TeacherSchema.js

import from '../components/SchemaComponents.js'; 
TeacherSchema = new Mongo.Collection("teacherSchema"); 

var Schemas = {}; 

Schemas.TeacherSchema = new SimpleSchema({ 
    school: SchemaComponents.schools, 
}); 

TeacherSchema.attachSchema(Schemas.TeacherSchema); 

回答

1

您定义SchemaComponent作为一个简单的对象而不是作为SimpleSchema对象。要重用你schools定义做:

let schoolsSchema = new SimpleSchema({ 
    schools: { 
    type: [String], 
    optional: true, 
    autoform: { 
     options: [ 
     {label: "School One", value: 'SchoolOne'}, 
     {label: "School Two", value: 'SchoolTwo'}, 
     {label: "School Three", value: 'SchoolThree'}, 
     ] 
    } 
    } 
}); 

然后,你可以这样做:

Schemas.TeacherSchema = new SimpleSchema({ 
    school: { 
    type: schoolsSchema 
    } 
}); 
+0

我收到服务器错误'的ReferenceError:schoolsSchema没有在路径defined':'TeacherSchema.js' – bp123

+0

然后您需要将'schoolsSchema'导入到您的'TeacherSchema.js'文件中。 –

+0

好的,所以我已经添加了'从../ components/SchemaComponents.js'导入schoolsSchema;'现在我得到了'错误:学校字段的无效定义' – bp123

相关问题