Ryusuke Fuda's Tech Blog

Softweare Enginier about Web, iOS, Android.

knockout.js data-bindでviewmodel外の関数よぶ

■ data-bind内で他の普通の関数呼びたい、そしてdata-bindにある要素つかいたい

<ul data-bind="foreach: list">
    <p data-bind="text: title"></p>
    <span data-bind="text: description"></span>
    <a href="javascript:void(0)" data-bind="click: _deleteVideo">ビデオ削除</a>
</ul>

<script type="text/javascript">
var _deleteVideo = function()
{
     //このthisにforeachでまわしてるlistの中身が入ってくる
     console.log(this); 
}
</script>

※ data-bind="click: _deleteVideo()" ()をつけると、勝手に実行されてしまうので、_deleteVideo(id)のように引数をつけて実行することはできない。clickならthisで中身とれるので大丈夫だけど他はどうするんだろう…

参考)
http://stackoverflow.com/questions/19062629/can-i-call-function-outside-viewmodel-on-knockouthttp://knockoutjs.com/documentation/click-binding.html