リモートからデータを取得し、モデルとコレクションを作成しようとしています。アプリの各部分 (コントローラー、ビュー、モデル) を次に示します。チタンでモデルを使用することはデータベースに保存するようなものであることを本当に理解していれば、すべてのデータを取得した後、インターネット接続がなくてもデータが保持されます。以下のコードはうまく機能しますが、接続が失われた後にデータが表示されないようです。そのため、従来の方法を使用する代わりにチタンでモデルを使用する利点は何ですか? xhr から取得してデータを表示しますか? 2-データを取得してモデルに保存した後の2番目の質問(間違っている場合)、別のページ内でxhrなしで取得できますか? 3- そして最後の : すべてのアプリ ページでデータが必要なため、 Alloy.js からデータを取得してモデルに保存するのは良い方法ですか?
コントローラー
// This is an istance of my xhr library
var XHR = require('xhr');
var xhr = new XHR();
$.win.addEventListener('open', function(){
url = 'mydomain.com/api/get_posts';
xhr.get(url, onSuccess, onError);
});
function onSuccess(response){
if(typeof response !== null ){
datas = JSON.stringify(response.data);
postsModel = [];
_.each(datas, function(data){
/* Create model */
postsModel.push(Alloy.createModel('mypostsmodel',{
title : data.title,
id : data.id
}));
});
$.posts.reset(postsModel);
}
}
** 景色 **
<Alloy>
<Collection src="myposts" instance="true" id="myposts" />
<Window id="win" title="Inscription" class="container" >
<View id="posts_view" class="myposts" dataCollection="$.myposts">
<View postId="{id}" class="post_item">
<Label class="post_label" text="{title}" />
<Label class="exp" id="exp_{id}" text="" />
</View>
</View>
</View>
</Alloy>
モデル
exports.definition = {
config: {
"columns": {
"title": "Text",
"id": "Integer"
},
"defaults": {
"title": "-",
"id": "-"
},
adapter: {
type: "sql",
collection_name: "myposts"
}
},
extendModel: function(Model) {},
...
皆さん、ありがとうございました。