2013-09-30 64 views
0

我試圖在Titanium中創建一個js模塊(一個js文件),它將像靜態方法的java類一樣工作,所以我可以要求該類並使用這些方法。 的結構如下:在Titanium中創建函數模塊

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

,但我得到以下錯誤:

Uncaught TypeError: Object function init {return Repository} has no method 'getProp'

謝謝你們

回答

0

在Javascript中,你已經創建了一個名爲Repository一個簡單的對象。雖然你有一個叫做init()的函數,但它不會被require語句調用。

你不需要初始化函數可言,只是改變Repository.js到

module.exports = Repository; 

這個對象將可通過要求Repository.js,就像你一樣!

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

謝謝,它的工作 –