1

我有一个 knockoutjs 视图模型,其中包含一个人的联系人类型列表(电话号码、电子邮件、实际地址等......)。

每种不同的联系人类型都有一个绑定到的不同模板。(例如,电话号码字段看起来与物理地址字段不同)。

这工作正常。

现在我需要能够给模板中的每个元素一个唯一的 ID,这样我就可以在标记和 javascript 中引用它们。例如,每个联系人类型中都有一个名为 AddressType 的字段,用户可以在其中输入家庭地址、工作电子邮件等内容……每个联系人类型都使用相同的字段。html 标记如下所示:

<label for='AddressType'>
    Type 
    <input type='text' id='AddressType' data-bind='value: AddressType' placeholder='Home, Work, etc...' />
</label>

现在这变得令人困惑。当屏幕上有四种不同的联系人类型时,标签标签最终会引用 ID 为“AddressType”的第一个元素。当屏幕上有两个电话号码字段时,PhoneNumber 字段的标签的作用相同。

如何为敲除模板中的每个模板化表单字段提供唯一的 ID 名称?

如果不清楚,请发表评论,我将创建一个 JSFiddle 来演示该问题。

4

1 回答 1

2

Leave off the for attribute of your label. It is optional and if not supplied, the label will apply to the child input element.

Beyond that, see this question: Unique ids in knockout.js templates

于 2013-08-05T18:55:09.820 回答