如何在Titanium中从另一个.js文件实现函数



如何在titanium中使用另一个.js文件中的函数/方法?

例如Utils.js

var db = Titanium.Database.open('myinfodb');
function addIntoDb(name) {
    db.execute('INSERT INTO info (name) VALUES(?)', name);
    Ti.Ti.API.info(name+' Added to db');
}
function getFromDb() {
    var holddatavar = db.execute('SELECT name FROM info');
    return holddatavar;
}
db.close();

如何在我当前的js文件中使用它?

db.js

// creates your database if necessary
var db = Titanium.Database.open('myinfodb');
db.execute('CREATE TABLE IF NOT EXISTS [info] (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)');
db.close();
var addIntoDb = function(name) {
    var db = Titanium.Database.open('myinfodb');
    db.execute('INSERT INTO info (name) VALUES(?)', name);
    Ti.Ti.API.info(name+' Added to db');
    db.close();
}
exports.addIntoDb = addIntoDb; // <=== This exposes the function to another file
// This function would remain accessible only to the file because we didn't export the function
function getFromDb() {
    var holddatavar = db.execute('SELECT name FROM info');
    return holddatavar;
}

然后你可以在其他JavaScript文件中使用它来访问它,如下所示:

var db = require('/mypath/db'); // NO .js extension on this
db.addIntoDb('Pravin');

明白了。仅

Ti.include('/ui/common/Utils.js');

Utils.js将成为

addStudent= function addIntoDb(name) {
    var db = Titanium.Database.open('myinfodb');
    db.execute('INSERT INTO info (name) VALUES(?)', name);
    Ti.API.info(name+' Added to db');
}
getStudent=function getFromDb() {
    var db = Titanium.Database.open('myinfodb');
    var holddatavar = db.execute('SELECT name FROM info');
    return holddatavar;
}

如果你不使用commonJS,那么你可以简单地包括这个文件,我的意思是为这个函数创建一个文件,并将该文件包括在你的current.js文件中,然后调用该函数。

var All=require('ui/common/All');

    Tree = require('ui/common/Tree');
    EBOM = require('ui/common/E-BOM');
    MBOM = require('ui/common/M-BOM');
    SBOM = require('ui/common/S-BOM');
//create object instance
var self = Ti.UI.createWindow({
    title:'Products',
    exitOnClose:true,
    navBarHidden:true,
    backgroundColor:'#ffffff',
    /////////////////////////////////////////////////////////////////////////////
    activity: {
        onCreateOptionsMenu: function(e) {
            var menu = e.menu;         
            var menuItem = menu.add({ title: "C-BOM", icon: 'Arrow-Hover.jpg' });
            //menuItem.setIcon("Arrow-Hover.jpg");
            menuItem.addEventListener("click", function(e) {
                 var all = new All();
                        self.add(all);
            });
            (.....)

最好是在/lib文件夹中创建像/Utils一样的子文件夹,并在/Utils/Utils.js.中放置一个文件

然后在index.js控制器中添加全局变量,如:

合金。全球化。Helpers=Ti.include('/Utils/Utils.js')

当你这样做时,你的文件现在可以在你制作的任何控制器中访问。请注意,这是针对Alloy的,但对于经典钛几乎是一样的。

最新更新