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

时间:2012-07-23 11:53:09

标签: 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文件中使用它?

5 个答案:

答案 0 :(得分:2)

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');

答案 1 :(得分:1)

知道了。 只是

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

            });

            (.....)

答案 4 :(得分:0)

最好是将/ lib文件夹中的子文件夹设置为/ Utils,并在/Utils/Utils.js中放置一个文件。

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

  

Alloy.Globals.Helpers = Ti.include( '/的Utils / Utils.js')

当您这样做时,您的文件现在可以在您制作的任何控制器中访问。 请注意,这适用于Alloy,但对于经典Titanium来说几乎相同。