1

如何在钛中使用另一个 .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 文件中使用它?

4

5 回答 5

2

数据库.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');
于 2012-07-23T13:55:35.040 回答
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;
}
于 2012-07-24T13:04:09.680 回答
0

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

于 2012-07-24T06:53:43.123 回答
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);

            });

            (.....)
于 2013-05-10T09:36:30.873 回答
0

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

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

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

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

于 2013-11-28T14:52:38.097 回答