如何访问 Movilizer 答案中所选答案项的标签

Posted

技术标签:

【中文标题】如何访问 Movilizer 答案中所选答案项的标签【英文标题】:How to access the label of a selected answer item in a Movilizer answer 【发布时间】:2015-07-07 12:56:08 【问题描述】:

在文本输入屏幕(类型 5)中,我有一个包含多个答案项目的下拉输入元素(答案类型 6)。离开 OK 我想将所选答案项的标签存储在局部变量中。调用 getAnswerData 会改为给我答案项的客户端密钥。如何改为访问标签?

【问题讨论】:

【参考方案1】:

您可以做的是在 onLeaveOkPersistAssignment 中使用 getAnswerValue 并将该值分配到新的本地变量中,例如$本地:选定项目。 通过这样做,clientKey 将存储在此 var 中。在下一个或后续屏幕上,您可以使用此 clientKey 访问正确的数组 pos 值。

示例: 最初您的问题可能如下所示:

question key="q0" type="5" title="">
            <answer key="q0a0" nextQuestionKey="q1" dummyAnswer="true" attributeType="6">
                <item clientKey="0" dummyAnswerItem="true" />
                <text/>
            </answer>
            <onEnterAssignment>
$local:myArray = 

   0:'Product 1';
   1:'Product 2';
   2:'Product 3';
;

addAnswer($answer:'q0a0', null, 'Dropdown List');
for(items:$local:myArray)

   addAnswerItem($answer:'q0a0', null, '0', items, $local:myArray[items]);

            </onEnterAssignment> 

此示例包含一个 dummyAnswer(key=q0a0) 和一个 dummyAnswerItem,在 onEnterAssignment 中,您使用 addAnswer() 调用答案,并使用 addAnswerItem 分配答案项。 现在在这个答案的 onLeaveOkPersistAssignment 中,您正在使用 getAnswerValue(),在使用 getAnswerValue 时,您正在将 clientKey 分配给本地 var。

<onLeaveOkPersistAssignment>
   $local:selectedItem = getAnswerValue($answer:'q0a0');
</onLeaveOkPersistAssignment>

您现在可以在使用 changeEvents 的同一屏幕或后续屏幕上执行此操作:

<question key="q1" type="0" title="">
        <answer key="q1a0" nextQuestionKey="END" dummyAnswer="true"/>
            <onEnterAssignment>
               addAnswer($answer:'q1a0', null, $local:myArray[$local:selectedItem]);
           </onEnterAssignment> 
</question>

这允许您在下一个屏幕上打印所选项目的标签。

【讨论】:

还有两点不太清楚:1.) 答案项需要动态添加吗?还有没有办法用静态答案项目来处理这个问题? 2.) 是否建议使用值为 null 的 clientKey 参数调用 addAnswer? 1.这取决于,如果 label 和 clientKey 相同,则不需要动态添加它们。如果没有,则意味着您必须这样做。通过尝试使用 getter 方法访问标签,将始终返回客户端密钥,这就是我在示例中使用动态方式的原因。 2. 你可以肯定地定义一个 clientKey val,但因此只有一个可用的答案,我把它省略了。

以上是关于如何访问 Movilizer 答案中所选答案项的标签的主要内容,如果未能解决你的问题,请参考以下文章

Movilizer - 在 questionType 5 的答案中设置图标

如何更改选项卡布局中所选选项卡的形状?

Movilizer:如何禁用表格屏幕中的列标题?

在c#MVC4中获取列表框中所选值的总和

如何使用AngularJS在浏览器控制台中访问$ scope变量?

如何通过HTML改变我的chrome浏览器的标签名?