绑定模板时传递变量

时间:2016-11-21 12:57:56

标签: knockout.js durandal

目前我以这种方式绑定模板

 <div data-bind="template: { name: 'comp-template', foreach: company}">

现在我需要在绑定模板时传递变量"host-company" = true,以便我可以从comp-template视图访问该变量。我怎么能这样做?

注意:目前我从json文件获取公司详细信息,当前视图如下所示

 Host company: <span data-bind="if: text:host.company"></span>

此输出到Host company: true。所以我想要这样的东西

<div data-bind="template: { name: 'comp-template', foreach: company, data: {host-company: text:host.company} }">

这样我就可以在模板中使用text:host.company的值作为host-company。

1 个答案:

答案 0 :(得分:0)

首先,您需要从-中删除host-company(短划线),因为这会使其成为无效的标识符。我建议将其重命名为hostCompany或类似的内容。

假设有一个名为 - hostCompany的属性,它是company数组内部对象的一部分,您可以将该变量传递到data对象包装器中,如下所示 -

<div data-bind="template: { name: 'comp-template', foreach: company, data: { hostCompany: hostCompany } }">

或者像这样 -

<div data-bind="template: { name: 'comp-template', foreach: company, data: { hostCompany: true } }">

修改

假设您有一个对象host(在 root 级别)具有名为company的布尔属性,您想要传递给模板的值,你可以像下面这样做 -

<div data-bind="template: { name: 'comp-template', foreach: company, data: { hostCompany: host.company } }">

您可以在模板中访问此参数 -

<!--ko if: hostCompany -->
    <span>Host company is true</span>
<!--/ko-->