「Knockout.js/textバインディング」を編集中
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | [[Knockout | + | [[Knockout]]の'''textバインディング'''とは、パラメーターの値に応じ、関連付けられた[[DOM]]要素内のテキストを書き換える[[Knockout/可視バインディング|可視バインディング]]のひとつである。 |
− | + | 通常はspanタグやemタグといった要素の内容を書き換えるのに使うものだが、技術的には任意のあらゆる要素で使用できる。 | |
textバインディングで書き換えられた文字列はすべては強制的にプレーンテキストとなる。 | textバインディングで書き換えられた文字列はすべては強制的にプレーンテキストとなる。 | ||
− | プレーンテキストではなくHTMLで書き換えたい場合には[[Knockout | + | プレーンテキストではなくHTMLで書き換えたい場合には[[Knockout/htmlバインディング|htmlバインディング]]を使用する。 |
− | ただし[[Knockout | + | ただし[[Knockout/htmlバインディング|htmlバインディング]]は使い方を一歩間違うと[[スクリプトインジェクション]]攻撃を受ける危険性が高いので素人にはおすすめできない。 |
== パラメーター == | == パラメーター == | ||
− | [[Knockout | + | [[Knockout]]は、関連付られたDOM要素内のテキスト([[IE]]であればinnerTextプロパティ、[[Firefox]]であればtextCotnentプロパティの値)を、パラメーターの値で上書きする。 |
− | このパラメーターが[[Knockout | + | このパラメーターが[[Knockout/observable]]の場合は、値を更新するたびにテキストも更新する。パラメーターがobservableでない場合はバインディング適用時(Knockout/applyBindings実行時)に1回だけ更新されて以降は更新されない。 |
パラメーターの値の[[型]]が数値(number型)または文字列(string型)の場合はそのものを、それ以外の場合はtoString()メソッドを実行した結果でテキストを上書きする。 | パラメーターの値の[[型]]が数値(number型)または文字列(string型)の場合はそのものを、それ以外の場合はtoString()メソッドを実行した結果でテキストを上書きする。 | ||
16行目: | 16行目: | ||
== 使用例 == | == 使用例 == | ||
=== hello world === | === hello world === | ||
− | + | 「[[hello, world]]」はこんな感じ。 | |
<source lang="html5"> | <source lang="html5"> | ||
<!DOCTYPE html> | <!DOCTYPE html> | ||
28行目: | 28行目: | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
jQuery(function() { | jQuery(function() { | ||
− | // | + | // モデル |
var AppViewModel = function() { | var AppViewModel = function() { | ||
this.message = ko.observable("hello, world"); | this.message = ko.observable("hello, world"); | ||
45行目: | 45行目: | ||
=== HTMLの使用 === | === HTMLの使用 === | ||
− | textバインディングのパラメーターに[[HTML]]を書いてもそのままの文字列として表示される(HTMLエスケープされた文字列が表示される)。HTMLで上書きしたい場合は[[Knockout | + | textバインディングのパラメーターに[[HTML]]を書いてもそのままの文字列として表示される(HTMLエスケープされた文字列が表示される)。HTMLで上書きしたい場合は[[Knockout/htmlバインディング|htmlバインディング]]を使用する。 |
=== 式の使用 === | === 式の使用 === | ||
textバインディングには簡単な式が使える。 | textバインディングには簡単な式が使える。 | ||
− | 式に関する詳細は[[Knockout | + | 式に関する詳細は[[Knockout]]の項目を参照。 |
[[3項演算子]]の使用例。 | [[3項演算子]]の使用例。 | ||
80行目: | 80行目: | ||
== 関連項目 == | == 関連項目 == | ||
− | * [[Knockout | + | * [[Knockout]] |
− | ** [[Knockout | + | ** [[Knockout/可視バインディング|可視バインディング]] |
− | |||
== 参考文献 == | == 参考文献 == |