メインメニューを開く

差分

Knockout.js/textバインディング

493 バイト追加, 2012年4月20日 (金) 08:10
[[Knockout.js]]の'''textバインディング'''とは、パラメーターの値に応じて関連付けられたとは、パラメーターの値に応じ、関連付けられた[[DOM]]要素内のテキストを書き換えるバインディングのことである。要素内のテキストを書き換える[[Knockout.js/可視バインディング|可視バインディング]]のひとつである。
通常はspanタグやemタグといった要素の内容を書き換えるのに使うものだが、技術的には任意のあらゆる要素で使用できる。textバインディングは、通常spanタグやemタグといった要素の内容を書き換えるのに使うものだが、技術的には任意のあらゆる要素で使用できる。
textバインディングで書き換えられた文字列はすべては強制的にプレーンテキストとなる。
プレーンテキストではなくHTMLで書き換えたい場合には[[Knockout.js/htmlバインディング|htmlバインディング]]を使用する。ただし[[Knockout.js/htmlバインディング|htmlバインディング]]は使い方を一歩間違うと[[スクリプトインジェクション]]攻撃を受ける危険性が高いので素人にはおすすめできない。
== パラメーター ==
[[Knockout.js]]は、関連付られたDOM要素内のテキスト([[IE]]であればinnerText、であればinnerTextプロパティ、[[Firefox]]であればtextCotnentの値)を、パラメーターの値で上書きする。であればtextCotnentプロパティの値)を、パラメーターの値で上書きする。
このパラメーターが[[Knockout.js/observableobservableオブジェクト|observableオブジェクト]]の場合は、値を更新するたびにテキストも更新する。パラメーターがobservableでない場合はバインディング適用時(Knockoutの場合は、値を更新するたびにテキストも更新する。パラメーターが[[Knockout.js/applyBindings実行時)に1回だけ更新されて以降は更新されない。observableオブジェクト|observableオブジェクト]]でない場合はバインディング適用時([[Knockout/applyBindings関数|applyBindings関数]]実行時)に1回だけ更新されて以降は更新されない。
パラメーターの値の[[型]]が数値(number型)または文字列(string型)の場合はそのものを、それ以外の場合はtoString()メソッドを実行した結果でテキストを上書きする。
== 使用例 ==
=== hello world ===
textバインディングを使用した「[[hello, world]]」はこんな感じ。
<source lang="html5">
<!DOCTYPE html>
<script type="text/javascript">
jQuery(function() {
// モデルビューモデル
var AppViewModel = function() {
this.message = ko.observable("hello, world");
=== HTMLの使用 ===
textバインディングのパラメーターに[[HTML]]を書いてもそのままの文字列として表示される(HTMLエスケープされた文字列が表示される)。HTMLで上書きしたい場合は[[Knockout.js/htmlバインディング|htmlバインディング]]を使用する。
=== 式の使用 ===
textバインディングには簡単な式が使える。
式に関する詳細は[[Knockout.js]]の項目を参照。
[[3項演算子]]の使用例。
== 関連項目 ==
* [[Knockout.js]]** [[Knockout.js/可視バインディング|可視バインディング]]** [[Knockout.js/制御フローバインディング|制御フローバインディング]] 
== 参考文献 ==
<references/>
匿名利用者