【问题标题】:Creating a module of functions in Titanium在 Titanium 中创建函数模块
【发布时间】:2013-09-30 21:18:23
【问题描述】:

我正在尝试在 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;

在我想在存储库中使用函数的文件中,我做了以下操作:

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

但我收到以下错误:

未捕获的类型错误:对象函数 init {return Repository} 没有方法 'getProp'

谢谢大家

【问题讨论】:

    标签: javascript titanium titanium-mobile commonjs


    【解决方案1】:

    在 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: ''});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      相关资源
      最近更新 更多