ko observableArrayにpushしたデータが反映されない

2012/11/16
「変数().push()」ではなくて、「変数.push()」を使う。

メモ

やろうとしていること下記。

  • リストがある。
  • ボタンクリックでリストにデータ追加。
  • 追加されたデータをHTML表示。

まずは、リストをobservableArrayで設定。
html側はforeachバインディングでリストを表示。
ボタンクリックしたらリストに「push()」をする。
html側も「push()」した値を表示したい。

「リストをobservableArrayで設定。」ってのは、「self.list = ko.observableArray()」。
foreachバインディングのほうは、「foreach: list」

ボタンには「click: $root.addData」

JS側には「self.addData = function(){}」ってな感じで記述。
中身は当初「self.list().push(データ);」みたいな感じにしてた。
結果は、html側に「push()」した値が表示されない。
JS側では、「push()」した値は格納されている。

あれこれ試した結果…「self.list().push(データ);」ではなくて、「self.list.push(データ);」とする必要があるらしい。

まとめ
koのpush()について

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい