【发布时间】:2015-04-20 16:06:53
【问题描述】:
我正在填写调查问题列表。单击调查问题时,会弹出一个带有结果图表的模式。为了创建我的列表,我使用了一个剔除模板,因为我需要 afterRender 函数。
这是我的标记:
<div id="priorityMenuW" class="priorityMenuW shadow">
<div class="menuHeader">Select a Survey Question:</div>
<div id="priorityMenu" data-bind="foreach:questionTypes">
<div class="menucategory menuItem" data-toggle="tooltip" data-bind="text:CategoryName, attr:{title:CategoryName}"></div>
<div class="menuitem" data-toggle="tooltip" data-bind="foreach:$root.questions">
<!-- ko if: CategoryName == $parent.CategoryName-->
<div data-bind='template: { name: "question-template",
data:$root.questions,
afterRender: $root.storeQuestionIdOrder }'>
</div>
<!-- /ko -->
</div>
</div>
</div>
还有我的模板:
<code><script type="text/html" id="question-template">
<div class="menuItem" data-toggle="tooltip" data-bind="html:'• '+ $parent.QuestionText, attr:{title:$parent.QuestionText}, css: {'itemSelected' : $root.isPriorityActive($data)}, click: function($data,event){$root.questionChoice($data,event)}"></div></script></code>
我的问题是,通过将$data 发送到函数questionChoice,我收到了一个包含所有模板化对象的数组。如何访问单击的特定对象?我在想可能是$data[$index],但这不起作用。
【问题讨论】:
标签: javascript templates knockout.js indexing foreach