nei*_*ond 1 javascript knockout.js
而我的viewmodel看起来像这样:
"rows" : [
{ "name": "row_1",
"columns": [
{ "name" : "column_1", "value" : "value_1_1"},
{ "name" : "column_2", "value" : "value_1_2"},
{ "name" : "column_3", "value" : "value_1_3"},
{ "name" : "column_4", "value" : "value_1_4"},
{ "name" : "column_5", "value" : "value_1_5"}
]
},
{ "name": "row_2",
"columns": [
{ "name" : "column_1", "value" : "value_2_1"},
{ "name" : "column_2", "value" : "value_2_2"},
{ "name" : "column_3", "value" : "value_2_3"},
{ "name" : "column_4", "value" : "value_2_4"},
{ "name" : "column_5", "value" : "value_2_5"}
]
},
...
]
Run Code Online (Sandbox Code Playgroud)
我用以下内容构建了一个表:
<tbody data-bind="foreach: rows">
<tr data-bind="foreach: columns">
<td><span data-bind="text: value"></span></td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我希望每一行都有一个<td>(row_name)</td>前置.
是否有一种直接的方式来预先添加"标签" <td>?
这应该这样做:
<tbody data-bind="foreach: rows">
<tr>
<td data-bind="text: name"></td>
<!-- ko foreach: columns -->
<td><span data-bind="text: value"></span></td>
<!-- /ko -->
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
这种方法被称为"无容器控制流语法",非常适合这种情况; KO文档给出了这个例子:
<ul>
<li class="header">Header item</li>
<!-- ko foreach: myItems -->
<li>Item <span data-bind="text: $data"></span></li>
<!-- /ko -->
</ul>
Run Code Online (Sandbox Code Playgroud)
参考:http://knockoutjs.com/documentation/foreach-binding.html
| 归档时间: |
|
| 查看次数: |
586 次 |
| 最近记录: |