首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数+ module.exports

函数+ module.exports
EN

Stack Overflow用户
提问于 2013-12-04 11:08:50
回答 1查看 1.3K关注 0票数 0

我对钛的module.export有个问题。我试着跟踪https://wiki.appcelerator.org/display/guides/CommonJS+Modules+in+Titanium,但是它根本不起作用。

我有两段代码。App.js:

代码语言:javascript
复制
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。

代码语言:javascript
复制
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;

我说错了

对象#在app.js vueimage.test()中没有方法“test”

在我的脑海中,我遵循上面wiki中的“不可更改的对象”的例子,但是我可能还没有理解一些东西。我想我犯了个愚蠢的错误。我尝试了很多其他的东西,每一种都比其他的更丑,而且无论如何都行不通。

谁能告诉我哪里出错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 19:27:43

您的错误是在运行时假设您有一个视图映像实例:

代码语言:javascript
复制
var vueimage = new (require('UI/viewimage'))();

您将得到一个

代码语言:javascript
复制
var lavue = Ti.UI.createView({backgroundColor:'red' }); 

它没有测试属性。

也许您可以使用这样的对象来代替:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
var vueimage = new (require('UI/viewimage'))();

vueimage.test();
fenetreBase.add(vueimage.lavue);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20373718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档