ソースコードはこちら
今回は主に公式ドキュメントを参考にしました.
背景的な
そろそろTitanium初心者を抜け出したいと思ったのでAlloyフレームワークのModelを使ってみようかなと.
今回やったこと
- ModelのデータをTableViewにバインドした
- レコードを追加する際に,validateを行った
※見た目は普通にTableViewを使ったのと変わらないので載せません
ちょっと説明
app/controller/index.js
function transFormFunction(model){
var transform = model.toJSON();
return transform;
}
var library = Alloy.Collections.user;
library.fetch();
この2つはとても重要.TableViewに何も表示されないのであれば,おそらくこのどちらかの処理が欠けている.
app/model/user.js
extendModel: function(Model) {
_.extend(Model.prototype, {
validate: function(attrs){
for(var key in attrs){
var value = attrs[key];
switch(key){
case 'name':
if(value.length <= 0 || 20 < value.length){
return 'Error: No title';
}
break;
case 'age':
if(isNaN(value)){
return 'Error: No age';
}
break;
case 'email':
if(!(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/.test(value))){
return 'Error: No email';
}
break;
}
}
}
});
return Model;
}
controller側でisValid()メソッドを呼び出すとvalidateが呼び出される.isValid()は一番下のreturn Model以外のreturnを受け取った場合,falseと判定されるっぽい.(要検証)
理解した点・苦労した点
- まず日本語の記事が少ない
- dataTransformこれ重要
- Alloy.Collections.model.fetch()これも重要
- そして日本語の記事が少ない
最後に
今までTi.App.Propertiesにデータを格納してきたが,これからは勉強がてら積極的にmodelを使っていこうかなと.
また機会があったらmodelの記事を書きたいと思います.