[Knockout.js基本編]View側での関数の使い方まとめ
Knockout.jsでは、View(HTML)側のバインディングに対してViewModelオブジェクトのプロパティだけではなく、JavaScriptの関数を用いることもできます。例えばtextバインディングに関数の実行結果を渡したり、clickバインディングにイベントハンドラを関連付けたりすることが可能です。
今回は、そのようなView側での関数の使い方についてまとめてみました。
Knockout.jsでは、View(HTML)側のバインディングに対してViewModelオブジェクトのプロパティだけではなく、JavaScriptの関数を用いることもできます。例えばtextバインディングに関数の実行結果を渡したり、clickバインディングにイベントハンドラを関連付けたりすることが可能です。
今回は、そのようなView側での関数の使い方についてまとめてみました。
Knockout.jsではView(HTML)側からko.applyBindingsメソッドの引数として渡されるViewModelオブジェクトのプロパティやメソッドを参照することが可能ですが、場合によってはViewModelオブジェクトにはない(ViewModelオブジェクトの外部で定義されている)関数などを使いたくなるケースもあるかと思います。
そのような関数やプロパティをView側参照するにはどうすれば良いのでしょうか?そもそもView側からは何が参照可能なのか?という部分がよく分かっていなかったので、そのあたりを少し調べてみました。
knockout.jsのobservableメソッドはViewModelオブジェクトのプロパティを監視可能な状態にします。これにより、監視対象のプロパティの値が更新された際に更新内容をView側に反映させることができるようになります。
前回はKnockout.jsの概要について書きましたが、今回はKnockout.jsの基本的な使い方の紹介と簡単なサンプルの作成をしてみます。
ページの再読み込みではなくJavaScriptによるDOMのリフローを頻繁に行うようなWEBアプリケーションを作成する場合、アプリケーションの規模が大きくなるにつれHTMLマークアップとJavaScriptコードが随所で絡み合ってしまい、次第にコードのメンテナンスや機能拡張が困難になっていきます。そんな経験をしたことのある人は結構多いのではないでしょうか。
ここで紹介する「Knockout.js」はそんな問題を劇的に改善してくれるJavaScriptフレームワークです。