2011-08-05 8 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)

関連する問題