当用户点击行时我想在输入中显示数据,因此它是可编辑的(不想在表格中编辑)
这是代码: http://jsfiddle.net/APzK8/
就像你可以看到两个输入有效,两个没有。我更喜欢在ViewModel中只有Selected属性。在实际代码中,每个Config都有15-20个属性。
此外,如果您可以帮我在页面加载时选择第一个配置。我可以用javascript点击这行,但它很难看。我认为它应该在viewmodel中定义。尝试过很多事情但没有任何效果。
答案 0 :(得分:4)
基本上,您需要通过执行Selected().Name
而不是Selected.Name
来访问这些值。因此,您希望获取所选的基础值,然后访问其Name
属性。
但是,更简单/更好的方法是使用with
控制流绑定,这将保护您免受空值的影响(避免编写Selected() ? Selected().Name : null
种语句)。 / p>
看起来像是:
<div data-bind="with: Selected">
<label for="name">Selected.Name</label>
<input type="text" id="name" data-bind="value: Name" />
<label for="value">Selected.Value</label>
<input type="text" id="value" data-bind="value: Value" />
<input type="button" data-bind="click: $root.AddConfig" value="Add config" />
</div>
以下是一个示例:http://jsfiddle.net/rniemeyer/APzK8/2/
要选择第一个配置,我只是将Selected
初始化为Configs
中的第一个值。