2010-09-09 61 views
6

我是新加入鈦和JavaScript的編輯器,我有興趣編寫一個iPhone應用程序。我認識到需要創建UI的「許多」代碼。這到目前爲止沒有問題,但我傾向於明智地將該代碼與我的應用程序邏輯分開。最佳做法是什麼?鈦(鈦)邏輯和用戶界面的分離(javascript)

[更新]tweetanium是一個很好的例子如何構建鈦移動應用

回答

4

好,我剛剛找到一個涼爽實踐。

我包括與應用程序邏輯的con_file.js的view_file.js與

Titanium.include('../controller/con_file.js'); 

現在我能夠訪問該孔的數據結構。

+2

你也可以嘗試commonJS:https://wiki.appcelerator.org/display/guides/Mobile+Best+Practices – Julian 2012-01-30 00:09:52

4

我會試一試:

我傾向於使用mvc-pattern以來在一個單個的JS文件執行的所有東西開發我的應用程序是相當難看。所以我決定使用一個文件來查看視圖和所有的內容,包括數據庫處理(控制器)的一個文件,尤其是sql語句,以及一個用於abstract data type(模型)的文件。

短例如:

視圖: 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的:文件夾視圖(viewConcerningObject.js),folderModel(theDatabase.db,object.js),folderController(controllerConcerningObject.js)。