コードを書いてくらす

プログラミングについて書いてます。

投稿型サイトの続き

前回に続いて投稿型サイトをつくってますが…ちゃんと理解できないまま試行錯誤にばかり時間をかけているので、分からない点を整理してみます。

まずは実装するべき機能をまとめます。

  • 記事の削除
  • 記事の更新

それぞれの実装方法:
記事の削除は、該当する記事のインデックスを元に配列からspliceで削除します。記事のインデックスは詳細ページで表示中の番号です。詳細ページ用のコントローラーが持っているlistIndexプロパティの値を、記事編集用コントローラーに渡し、配列から削除します。
記事の更新は、詳細ページ用のコントローラーが持っているlistIndexプロパティの値を、記事編集用コントローラーに渡し、配列から記事データを参照してng-modelでバインドしているプロパティにセットします。更新後は配列のインデックスが示す該当するオブジェクトの内容を上書きします。日付は追加と同じくコード内で設定します。

問題点:
詳細ページ用のコントローラーのプロパティlistIndexを、記事編集用コントローラーと共有させることができない


実装1:
モジュール内に変数を追加しモジュール内のコントローラーから参照できるようにする
実装2:
詳細ページ用コントローラーにスコープを設定して、入れ子の記事編集用コントローラーから参照できるようにする


いろいろ調べてみて実装1はあまり良くない方法のような気がしたので、実装2でやっています。スコープに入れた変数の参照自体はできているようですが、詳細ページをクリックしたりして変更されたlistIndexが反映されていないようです。
listIndexが上手く取れないので、記事編集用ページで表示したい既存の文章が表示されないんですね。ちなみに初期値0などにしてみると先頭の記事がきちんと表示されています。


いろいろやりながら不足しているなと感じる点を挙げてみます。

  • スコープについてきちんと理解していない
  • ディレクティブとコントローラーについての理解が足りない

ここに書き出してみたら少しすっきりしました。やりたいことははっきりしているので、行き当たりばったりな実装を止めてじっくりマニュアルを読むべきですね。


あと、ちょっと気温が高すぎてぼーっとしてしまうのも原因の一つだとおもいます。(天気のせいにする)


今日はこの辺で。