فصل المنطق ووزارة المستخدم في التيتانيوم (جافا سكريبت)

StackOverflow https://stackoverflow.com/questions/3675611

سؤال

أنا جديد على AppCelerators Titanium و JavaScript وأنا مهتم بترميز تطبيق iPhone. أدركت أن هناك حاجة إلى رمز "كثير" لإنشاء واجهة المستخدم. هذه ليست مشكلة حتى الآن ، لكنني أميل إلى فصل هذا الرمز عن منطق التطبيق الخاص بي بحكمة. ما هي أفضل الممارسات؟

تحديث Tweetanium هو مثال رائع على كيفية تنظيم تطبيق المحمول التيتانيوم

هل كانت مفيدة؟

المحلول

حسنًا ، لقد وجدت مجرد ممارسة رائعة.

أقوم بتضمين con_file.js مع منطق التطبيق The View_file.js

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

الآن أنا قادر على الوصول إلى بنية بيانات الثقب.

نصائح أخرى

سأحاول:

أنا أميل إلى استخدام MVC-PITERN لتطبيق طلبي لأن تطبيق جميع الأشياء في ملف JS واحد قبيح للغاية. لذلك قررت استخدام ملف واحد للعرض وجميع الأشياء التي تصل إلى المظهر والملعين ، ملف واحد لمعالجة قاعدة البيانات (وحدة التحكم) ، وخاصةً منصب SQL ، وملف واحد ل نوع البيانات المجردة (الموديل).

مثال قصير:

رأي: 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();
   };

}

مراقب: ControlerConcerningObject.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 (ControlerConcerNingObject.js).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top