2017-12-22 14 views
0

私はそれをしたい:knockoutjsを使ってクリック機能で固定パラメータを渡すにはどうすればいいですか?

<button type="button" data-bind="click: myFunction(1)" </button> 
    <button type="button" data-bind="click: myFunction(2)" </button> 
    <button type="button" data-bind="click: myFunction(3)" </button> 

が、私はこれにページが起動するたびに実行する場合、この機能はtriggered.I私は

+3

「注2:イベントオブジェクトにアクセスする、またはパラメータを渡す」http://knockoutjs.com/documentation/click-binding.html –

+0

@PaulAbbott同じ例を示しましたが、ページをロードするときにも実行されます。 .. pls help me私は – joeyanthon

+1

関数自体の代わりに関数の結果にバインドするので、ページを読み込むときに実行されています。 myFunctionを 'click:function(){myFunction(3)}'のような別の無名関数定義の中に入れることができます。これは@PaulAbbottが参照していたものです –

答えて

2

をクリックしたとき、私はそれをトリガーにしたい、これを望んでいない中でありますmyFunction.bindを使用してclickバインドがトリックします。このようなビューモデルで定義されてmyFunction

<button type="button" data-bind="click: myFunction.bind($data, 1)">one</button> 
<button type="button" data-bind="click: myFunction.bind($data, 2)">two</button> 
<button type="button" data-bind="click: myFunction.bind($data, 3)">three</button> 

:あなたはこれを試すことが

self.myFunction = function(n) { 
    alert(n); 
} 

アラートのみが実際のボタンのクリックに応じてではなく、ページの読み込みに発砲されます。

self.myFunctionには1つのパラメータしかありませんが、myFunction.bind($data, 1)にはさらに$dataという引数が必要です。

関連する問題