2011-08-05 60 views
1

下面是代码示例:如何将当前元素传递给绑定点击事件的函数?

<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函数。有任何想法吗?

回答

2

在jQuery模板中,变量$data引用了模板绑定的数据。所以,你想打电话给:viewModel.changeColumnName($data)

相关问题