我对钛上的module.export有问题。我尝试了https://wiki.appcelerator.org/display/guides/CommonJS+Modules+in+Titanium,但它根本不起作用。
我有两小段代码。 App.js:
var fenetreBase = Titanium.UI.createWindow({fullscreen:true,backgroundColor:"white",exitOnClose:true});
fenetreBase.open();
var vueimage = new (require('UI/viewimage'))();
vueimage.test();
fenetreBase.add(vueimage);
文件夹UI中的和viewimage.js。
function viewimage() {
var lavue = Ti.UI.createView({backgroundColor:'red' });
var item =...
lavue.add(item...);
return lavue;
}
viewimage.prototype.test = function() {
Ti.API.info("test");
};
module.exports = viewimage;
我说错误
对象#< view>在app.js vueimage.test()
中没有方法'test'
在我看来,我遵循上面wiki中的“Instantiable Objects”的例子,但我可能听不懂。我希望我犯了一个愚蠢的错误。我尝试了许多其他的东西,每个都比其他东西更丑,但它无论如何都不起作用。
有人可以告诉我错误在哪里吗?
答案 0 :(得分:2)
你的错误是假设你在运行时有一个viewimage实例:
var vueimage = new (require('UI/viewimage'))();
您正在获取
的实例var lavue = Ti.UI.createView({backgroundColor:'red' });
没有测试属性。
也许您可以使用这样的对象:
function viewimage() {
var result = {};
var lavue = Ti.UI.createView({backgroundColor:'red' });
var item =...
lavue.add(item...);
result.lavue = lavue;
result.test = function() {
Ti.API.info("test");
};
return result;
}
修改强>
在你的App.js中:
var vueimage = new (require('UI/viewimage'))();
vueimage.test();
fenetreBase.add(vueimage.lavue);