Knockout 3.2.0 - 在模板中传递额外参数

时间:2016-08-10 14:09:37

标签: javascript templates knockout.js foreach

我正在尝试解决我使用Knockout的问题。 我想使用模板来制作我正在努力清洁的视图。 但是,我无法做到,因为目前我需要将一个额外的参数传递给我的模板,然后需要在函数中用作参数。直到现在,我还没有办法做到这一点。

这是我创建的模板:

<script type="text/html" id="my-template">
  <div data-bind="click: $root.selectItem.bind($data,$data.type)">
</script>

<div data-bind="template:{name:'my-template',foreach: contactInfo().Children, data:{type:'firstContactList'}"></div>

<div data-bind="template:{name:'my-template',foreach: contactInfo().Children, data:{type:'SecondContactList'}"></div>

所以基本上,我想要的是能够将foreach与我的模板一起使用并传递额外的参数firstContactListSecondContactList,这是一个字符串。

到目前为止,我还没有成功做到这一点......

1 个答案:

答案 0 :(得分:2)

您无法将额外数据传递给模板,但您可以重构代码以便能够传递任何内容:

<script type="text/html" id="my-template">
    <div data-bind="foreach: children">
        <div data-bind="click: $root.selectItem.bind($data, $parent.type)"></div>
    </div>
</script>

<div data-bind="template:{name:'my-template', data:{children:contactInfo().Children, type:'FirstContactList'}"></div>

<div data-bind="template:{name:'my-template', data:{children:contactInfo().Children, type:'SecondContactList'}"></div>