Content management system Keystone.js:实现编辑考试和考试模型的最佳方法

Content management system Keystone.js:实现编辑考试和考试模型的最佳方法,content-management-system,keystonejs,Content Management System,Keystonejs,在Keystone.js中,添加带有“simple”字段的模型很容易,例如 Car: - registrationNumber - model - year - isAutomatic 对于所有这些字段,将生成一个[Edit Car]页面,其中包含一个包含所有字段的“表单” 然而,由于我正在开发一个具有考试/测验功能的学习系统,我需要编辑更复杂的模型-一个考试,特别是它的问题[] 考试的所有字段(除了问题外)都是“简单”字段(并且可以在[Edit Exam]页面上轻松呈现为可编辑字段)

在Keystone.js中,添加带有“simple”字段的模型很容易,例如

Car:
 - registrationNumber
 - model
 - year
 - isAutomatic
对于所有这些字段,将生成一个[Edit Car]页面,其中包含一个包含所有字段的“表单”

然而,由于我正在开发一个具有考试/测验功能的学习系统,我需要编辑更复杂的模型-一个
考试
,特别是它的
问题[]

考试
的所有字段(除了
问题
外)都是“简单”字段(并且可以在[Edit Exam]页面上轻松呈现为可编辑字段)。但是,如何为复杂的
问题
模型提供用户界面呢

Exam:
  - name
  - durationMinutes
  - welcomeText
  - Questions[]
UI的主要用途是在
考试
的上下文中编辑
问题
(因为每次考试最多可以有100个问题)


我想知道将此相关列表
问题
编辑器添加到keystone UI的最佳方法

我正在研究类似的学习系统解决方案,您可能希望将您的编辑体验一分为二,就像keystonejs v4一样,您可以创建一个包含所有考试的页面,并将此页面的问题列表作为列表。当您想添加更多问题时,您可以打开一个对话框来填写表单。@GautamSingh谢谢您的建议!我曾考虑在表单中添加[[问题编辑器]]模态,但添加模态似乎是对UI的“非个人攻击”。。。所以我想知道是否有更优雅的解决方案……你可以在考试时保留问题id列表,或者在问题内部进行反向映射。把它和问题放在一起更有意义,因为数组中的项目可能不多,而不是每次考试的问题数量。
Question:
 - questionType:single_choice|mutliple_choice|picture|text|longtext)
 - questionText
 - questionChoices[] : string
 - correctAnswer: string
 - explanationTextLong: string