Titan 中逻辑和 UI 的分离 (javascript)

发布于 2024-09-18 05:37:01 字数 313 浏览 7 评论 0原文

我是 appcelerators titan 和 javascript 的新手,我对编写 iphone 应用程序感兴趣。我认识到需要“许多”代码来创建用户界面。到目前为止这还没有问题,但我倾向于明智地将代码与我的应用程序逻辑分开。最佳做法是什么?

[更新] tweetanium 是一个很好的例子,如何构建钛移动应用程序

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自找没趣 2024-09-25 05:37:01

好吧,我刚刚发现了一个很酷的做法。

我将 con_file.js 与应用程序逻辑包含在 view_file.js 中,

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

现在我可以访问孔数据结构。

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.

予囚 2024-09-25 05:37:01

我会尝试一下:

我倾向于使用 mvc-pattern 进行开发由于在一个 js 文件中实现所有内容,我的应用程序非常丑陋。所以我决定使用一个文件用于视图和所有与外观有关的内容,一个文件用于数据库处理(控制器),特别是 sql 语句,一个文件用于 抽象数据类型(模型)。

一个简短的示例:

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;
};

因此文件夹结构可能如下所示:

myProject :folderView(viewConcerningObject.js),folderModel(theDatabase.db,object.js),folderController(controllerConcerningObject.js)。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文