【问题标题】:Knockout Template in foreach access specific template itemforeach 访问特定模板项中的敲除模板
【发布时间】: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:'&bull; '+ $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


    【解决方案1】:

    如果您想使用$data[$index],请记住$index 是一个可观察对象,需要对其进行评估:

    $data[$index()]

    【讨论】:

    • 谢谢先生。我想这种挫败感足以让我检查最简单的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 2021-05-14
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多