选择表格中的行并显示详细信息

时间:2011-12-31 14:03:18

标签: knockout.js

当用户点击行时我想在输入中显示数据,因此它是可编辑的(不想在表格中编辑)

这是代码: http://jsfiddle.net/APzK8/

就像你可以看到两个输入有效,两个没有。我更喜欢在ViewModel中只有Selected属性。在实际代码中,每个Config都有15-20个属性。

此外,如果您可以帮我在页面加载时选择第一个配置。我可以用javascript点击这行,但它很难看。我认为它应该在viewmodel中定义。尝试过很多事情但没有任何效果。

1 个答案:

答案 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中的第一个值。