0
Thumbsup

いい質問だ

0

Thumbsdown

うーん

Alloy Model でリレーションを実現する方法

tnusr
tnusr 0

投稿日:2015-08-22 17:43:26

はじめまして。
このほど Titanium をさわり始めた者です。

SDK は 4.1.0GA です。
Alloy を使ったアプリ開発にチャレンジしています。

ここ数日、モデル間のリレーション設定をする方法を調べていたのですが、
これという情報にたどり着けず、質問させていただきます。

下記のようなことをおこないたいとイメージしています。

※ Item モデルから ManyToOne で関連づけられた Category エンティティを取得して、Category の name フィールドをコンソールに出力。

var itemId,  items, item, category;

itemId = 1;

// id = 1 のアイテムを取得
items = Alloy.createCollection('item');

items.fetch();

item = items.get(itemId);

// id = 1 のアイテムのカテゴリを取得
category = item.getCategory();

Ti.API.info("カテゴリー: " + category.get('name'));

app/models 以下に設置したモデル定義ファイルになにかしら記述するのだろうとは想像しているのすが、
http://docs.appcelerator.com/platform/latest/#!/guide/Alloy_Models
このあたりを見ても触れられていないようで…。

お詳しい方いらっしゃいましたら、なにとぞご助言のほどよろしくお願いいたします。



回答

yagi_
yagi_
2540
Tcad_icon Tcmd_icon Tce_icon

Thumbsup

いい回答

0

Thumbsdown

うーん

素のBackboneではRelationはサポートされていないので、Backbone-relationalようなものを利用することになるのかと思います。
http://backbonerelational.org/
https://github.com/PaulUithol/Backbone-relational

試してはいないのですが…

もしサーバ上にあるデータをREST APIで取得しているなら、単純にサーバ側でitemの取得時にCategoryの情報も出力すれば、JS側では透過的にitems.models[0].get('category').nameで取得できてしまうので、どちらかといえばその方がいいと思います。

どうしてもという場合を除けば、ParseやArrowのような無料または安価なソリューションがあるので利用すると楽になります。


tnusr
tnusr
0

Thumbsup

いい回答

0

Thumbsdown

うーん

アドバイスをいただきましてありがとうございます。
教えていただいたページを拝見してチャレンジしてみようと思います。

Titanium 勉強してまいります!


ログインすると回答することができます。