以下是代码示例:
<table>
<tr data-bind='template: { name: "GridColumnTable", foreach: columns }' ></tr>
</table>
<script type="text/html" id="GridColumnTable">
<td>
<span data-bind="text:name, click:function(event){ alert('blabla') }">
none
</span>
</td>
</script>
这是Javascript代码:
var viewModel = {
columns: new ko.observableArray(),
changeColumnName: function(column)
{
column.name('asdas');
}
}
viewModel.columns.push({
name: new ko.observable('column1')
});
viewModel.columns.push({
name: new ko.observable('column2')
});
viewModel.columns.push({
name: new ko.observable('column3')
});
viewModel.columns.push({
name: new ko.observable('column4')
});
ko.applyBindings(viewModel);
另见JSFiddle。
我想在用户点击时更改列名。但我不知道如何将当前元素传递给我的changeColumnName
函数。有什么想法吗?
答案 0 :(得分:2)
在jQuery模板内部,变量$data
引用模板绑定的数据。因此,您需要致电:viewModel.changeColumnName($data)