问题
i'm new to appcelerators titanium and javascript and i'm interested in coding an iphone app. i recognized that there is a need of "many" code for creating the UI. that's no problem so far, but i tend to separate that code from my application logic wisely. what are the best practices?
[update] tweetanium is a great example how to structure a titanium mobile application
回答1:
ok, i just found a cool practice.
i include the con_file.js with the application logic the view_file.js with
Titanium.include('../controller/con_file.js');
now i'm able to access the hole data structure.
回答2:
i'll have a try:
i tend to use the mvc-pattern for developing my application since implementing all stuff in one single js-file is quite ugly. so i decided to use one file for the view and all the stuff concering the look-and-feel, one file for the database handling (the controller), especially the sql-statements, and one file for the abstract data type (the model).
a short example:
view: 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);
model: 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();
};
}
controller: 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;
};
so the folder structure could be like this:
myProject: folderView(viewConcerningObject.js), folderModel(theDatabase.db,object.js), folderController(controllerConcerningObject.js).
来源:https://stackoverflow.com/questions/3675611/separation-of-logic-and-ui-in-titanium-javascript