钛在钛(JavaScript)中的逻辑和UI分离
-
01-10-2019 - |
题
我是Appcelerators Titanium和JavaScript的新手,我有兴趣编码iPhone应用程序。我认识到需要“许多”代码来创建UI。到目前为止,这没问题,但是我倾向于明智地将该代码与应用程序逻辑分开。什么是最佳实践?
更新 Tweetanium 是一个很好的例子,如何构建钛移动应用程序
解决方案
好的,我只是找到了一个很酷的练习。
我将con_file.js与应用程序逻辑一起使用view_file.js
Titanium.include('../controller/con_file.js');
现在,我能够访问孔数据结构。
其他提示
我会尝试:
我倾向于使用 MVC-Pattern 对于开发我的应用程序,因为一个单个JS文件中实施所有内容非常丑陋。因此,我决定将一个文件用于视图和所有有关外观的内容,一个用于数据库处理的文件(控制器),尤其是SQL statements,以及一个文件 抽象数据类型 (该模型)。
一个简短的例子:
看法: ViewConcerningObject.js
Ti.include('object.js');
var win = Ti.UI.currentWindow;
var myObject = new object();
var myObjectName = Ti.UI.createLabel({
text:myObject.getName();
});
win.add(myObjectName);
模型: object.js
Ti.include('controllerConceringObject.js');
function object(){
this.name = 'myInitialName';
this.getName(){
return this.name;
};
this.setName(newName){
this.name = newName;
};
this.updateNameFromDb(){
this.name = getNameFromDatabase();
};
}
控制器: controllerConcerningObject.js
function getNameFromDataBase(){
var db = Ti.Database('objects');
var sql = 'SELECT name FROM objects';
var recordset = db.execute(sql);
var name = recordset.field(0);
recordset.close();
db.close();
return name;
};
因此,文件夹结构可能是这样:
myProject:folderview(viewConcerningObject.js),foldermodel(thedatabase.db,object.js),foldercontroller(contranceerConcerneBobject.js)。
不隶属于 StackOverflow