在Titanium中创建函数模块

时间:2013-09-30 21:18:23

标签: javascript titanium titanium-mobile commonjs

我正在尝试在Titanium中创建一个js模块(一个js文件),它就像一个带有静态方法的java类,所以我可以要求类并使用这些方法。 结构如下:

var Repository = {
    setProp : function(_args) {
        Ti.App.Properties.setString(_args.name, _args.value);
    },

    getProp : function(_args) {
        var tmp = Ti.App.Properties.getString(_args.name);
        if (tmp)
            return tmp;
        else
            return _args.default_val;
    },

    foo : function () {
    },

    bar : function (error) {
    }

};// end Repository

这包含在名为

的文件中
Repository.js

我尝试将以下行添加到文件的末尾

function init() {
    return Repository;
};// end function init

module.exports = init;

在我想要使用Repository中的函数的文件中,我执行了以下操作:

var Repo = require('ui/utility/Repository');
var _name = Repo.getProp({name: 'name', default_val: ''}),

但我收到以下错误:

  

未捕获TypeError:对象函数init {return Repository}没有方法'getProp'

谢谢你们

1 个答案:

答案 0 :(得分:0)

在Javascript中,您创建了一个名为Repository的简单对象。虽然你有一个名为init()的函数,但不会使用require语句调用它。

您根本不需要init函数,只需将Repository.js更改为

即可
module.exports = Repository;

这个对象可以通过要求Repository.js来获得,就像你一样!

var Repo = require('ui/utility/Repository');
var _name = Repo.getProp({name: 'name', default_val: ''});