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

时间:2015-04-28 15:20:30

标签: movilizer

在文本输入屏幕(类型5)中,我有一个带有几个答案项的下拉输入元素(答案类型6)。离开时我想将选定的答案项标签存储在局部变量中。调用getAnswerData会为我提供答案项的客户端密钥。如何获得对标签的访问权限?

1 个答案:

答案 0 :(得分:1)

您可以做的是在onLeaveOkPersistAssignment中使用getAnswerValue,并在新的本地var中分配此值,例如: $地方:selectedItem属性。 通过这样做,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>

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