2012-04-20 16 views
0

knockoutjsを使用して選択値をデバッグする方法はありますか? data-bind="change: function(){debugger}を使用しようとしても動作していないようです。デバッグノックアウト選択値

<p data-bind="visible: $data[$item.settings.name]['navigation_type']() == 0" > 
    Link to Screen:<br/><select name="screen" data-bind="change: function(){debugger}, options: $item.element().screen.flow.navigable_screens, optionsText: function(item) { return item.attributes.name();}, optionsValue: 'permanent_id', value: $data[$item.settings.name].permanent_id"></select> 
</p> 

答えて

1

残念ながら、ノックアウトはあなたがそれを使用しようとしているように見えません。私はコードのこのビットから仮定しています:data-bind="change:あなたはjqueryの変更イベントにバインドしようとしていますか?

http://knockoutjs.com/documentation/selectedOptions-binding.html

、ここで:

http://knockoutjs.com/examples/simpleList.html

ノックアウトははるかにエレガントなjQueryのよりも、代わりに使用するのではMVVMパターンを以下のようにした場合、リストはここにどのように動作するかの選択を見てみましょうjQueryイベント。私は、MVVMパターンの高度な理解を得ることをお勧めします。http://learn.knockoutjs.com/

2

KnockoutJSが使用するインライン値バインディングをデバッグするのと同様の問題がありました。

http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/

あなたはJS内のすべてのあなたのバインディングを宣言するため、それらをデバッグすることができます:ここで説明したように私の最も最近のプロジェクトでは、私は緩い結合パターンを実装しました。その後、htmlでカスタムデータ属性を使用してそれらを参照します。

+0

偉大なリンクの男、私はちょうどそのようなものを探していました。 +1彼は奇妙な方法でデータバインドを混ぜようとしているように見えますが –

+0

最初はちょっと奇妙に見えますが、バインドする名前について注意する必要がありますが、うまくいきます。私のマークアップは現在100%クリーナーであり、エラーログははるかに意味があります。 –

+0

ニース。カスタムバインディングプロバイダが便利だと嬉しいです。 –