我想使用label
代码而不将for
属性映射到input
的{{1}},如w3c所述。像:
id
现在我尝试使用淘汰赛。
我的模特:
<label>
<input type="...">
</label>
我的第一个方法是:
function myViewModel(data) {
this.Name = "Max";
this.Value = "1337";
}
但当然<label data-bind="text: Name">
<input data-bind="value: Value" />
</label>
的数据绑定会覆盖其内容。因此,label
不会出现。
演示:https://jsfiddle.net/f49c32zx/
问题:如何才能完成这项工作?
我没有尝试将整个input
元素与所有属性和值一起作为我模型属性的值 - 这并没有给我一个好的感觉。
答案 0 :(得分:2)
您可以在标签标签内放置span或虚拟标签,并将文本绑定放在该内部标签上。
<label>
<!-- ko text: Name --><!-- /ko -->
<input data-bind="value: Value" />
</label>
答案 1 :(得分:1)
<label> <!-- ko text: Name --><!-- /ko -->
<input data-bind="value: Value" />
</label>