在AngularJS

时间:2015-05-05 08:04:31

标签: javascript angularjs drag-and-drop

我正在创建一个包含以下实体的测验应用。当然还有其他实体(和属性),但这些是相关的:

  • 测试(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)?

0 个答案:

没有答案