我正在创建一个包含以下实体的测验应用。当然还有其他实体(和属性),但这些是相关的:
测试(T)(身份证,姓名)
问题(问)(身份证明,文字,FK_TestId)
QuestionLines (QL)(Id,Text,FK_QuestionId)
QuestionOption (QO)(Id,Text,FK_QuestionId)
T和Q是不言自明的。 QL和QO描述如下:
QL1:一只猫有____腿和____尾巴。
QL2:你有____腿。
QOs:1,2,3,4和5.
然后,用户将QO(可拖动的)拖动到右侧的droppable(下划线/线)。
QLText(QL实体,Text属性)的格式是“猫有[<QOId>
]腿和[<QOId>
]尾”,在呈现给它之前必须进行修改用户。因此,对于每个[<QOId>
],将插入一个droppable。
我已经尝试了过滤器和指令,但我最终得到的HTML是纯文本,或者至少是非评估/编译的AngularJS代码和/或不正确绑定的droppables。我想要的,以及拖放插件的作用是将draggable(它是一个QO对象)的ngModel绑定到droppable的ngModel,这是一个属性(称为“objs”)的QL。这里棘手的部分(至少对我而言)是“objs”属性必须是一个数组,因为它可以绑定多个对象。
当用户按“下一步”转到下一个问题时,我将按以下格式保存答案:
[{id: <QLId>, value: [<QOId>]}]
因此,对于每个QL,都会有一个对象具有QL的id和所选QOIds的数组。
我目前正在使用这个拖放插件:http://codef0rmer.github.io/angular-dragdrop/#/.
以下是普通标记的摘录版本:
<ul>
<li ng-repeat=”ql in QuestionLines” ng-model=”ql”>
{{ ql.QLText }}
</li>
</ul>
所以问题是......
如何用HTML替换[] s,启用droppable功能并将可拖动的ngModel绑定到QL(或QL&text;属性中的dropppable)?