如何在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的,但对于经典钛几乎是一样的。