KnockoutJS,将数组中的对象字段作为<input />值传递

时间:2013-04-18 12:42:40

标签: knockout.js

是否有可能将可观察数组中的对象字段作为输入值传递? 例如,我需要类似这样的东西:

 <input type="text" data-bind="value: persons()[0].name"/>

所以我可以编辑数组中的对象字段。

2 个答案:

答案 0 :(得分:1)

它有效(只是出于对我的一个项目的好奇心测试)

但是,你的“人”数组是一个可淘汰的可观察数组。绑定操作可能会失败,因为当您启动Web应用程序时,“persons”数组为null或者至少没有填充至少一个对象。

如果您真的想这样做,我建议您首先检查您的绑定是否填充了人员阵列,例如:

<input type="text" data-bind="value: persons().length ? persons()[0].name : null"/>

无论数组的初始化状态如何,您都可以确保绑定操作不会崩溃。

答案 1 :(得分:0)

考虑在淘汰赛中使用foreach绑定,在下面的这个例子中,我使用了注释绑定和foreach绑定。

 <tbody>
                             <!-- ko foreach: Movies-->
                             <tr>
                              <td data-bind="text: Title"></td>
                              <td data-bind="text: Description"></td>
                              <td data-bind="text: Rating"></td>
                             </tr>
                              <!-- /ko -->
                            </tbody>
                        </table>