separation of logic and UI in titanium (javascript)

后端 未结 2 1165
借酒劲吻你
借酒劲吻你 2020-12-18 04:53

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\'

相关标签:
2条回答
  • 2020-12-18 05:17

    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.

    0 讨论(0)
  • 2020-12-18 05:27

    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).

    0 讨论(0)
提交回复
热议问题