リア充爆発日記

You don't even know what ria-ju really is.

Titanium AlloyのModelをいじっててハマったメモ

記事を表示する記事画面のarticleという画面があった。
article.xml

<Alloy>
  <Window>
~snip~

idを省略することによって、controller名が自動的につくので、このWindowのidはarticleとなる。
記事の内容を表すModelとしてやっぱりarticleというModelを作った。別にふつうのことだと思うけども。
で、controllerはarticle.coffeeで、初期化処理などが入る。

onCloseClicked = ->
  $.article.close()
~snip~
@article = Alloy.createModel('article', {id: 1})
@article.fetch(
  success: =>
    $.articleTitle.text = @article.title
~snip~

modelは最後に追加したんだけど、急にアプリが落ちやすくなるし、onClosedClickedが動かなくなった。

どういうことか散々時間を使った挙句、わかったのは、modelは$.model名で参照できるようになってしまうっぽい。つまり、この状態だと自動的に付与されるWindow名とmodel名がぶつかってよくわからん状態になっていたもよう。

XMLでmodelのインスタンス化とかできるのね。。。
http://docs.appcelerator.com/titanium/3.0/#!/guide/Alloy_XML_Markup-section-35621528_AlloyXMLMarkup-ModelElement

結果、Windowに明示的にidをつけて正常に戻すことができた。という話。

ヒストリエ(1) (アフタヌーンKC)

ヒストリエ(1) (アフタヌーンKC)