1

我似乎无法从任何其他模块访问 FotoAlbum 的 viewPort 属性,也无法运行我尝试添加到 FotoAlbum 的任何功能。我对 CommonJS 完全陌生,所以它可能很容易解决,但我现在看不到它。

function FotoAlbum(app)
{
    var self = Ti.UI.createWindow(
    {
        title : 'Fotoalbum',
        backgroundColor : '#fff',
        layout : 'vertical',
        height : 'auto',
        width : 'auto'
    });

    this.t=3;

    self.add(app.Navigation.getNavigationBar(app));

    this.viewPort = Ti.UI.createView(
    {
        top : '0dp',
        left : '0dp',
        width : '100%',
        height : 'auto',
        backgroundColor : 'white'
    });

    var label = Ti.UI.createLabel(
    {
        text : 'Foto album'
    });
    this.viewPort.add(label);
    self.add(this.viewPort);

    return self;
}
module.exports = FotoAlbum;
4

1 回答 1

1

this指的是函数 FotoAlbum的上下文,但是您正在使用此函数来创建和返回视图,这就是为什么您无法访问函数上下文以及附加到它的属性的原因。

因此,要完成这项工作,只需将您的方法和属性附加到 View 本身,如下所示:

function FotoAlbum(app) {
    var self = Ti.UI.createWindow();
    // Attach to the view
    self.t=3;
    self.add(app.Navigation.getNavigationBar(app));
    self.viewPort = Ti.UI.createView();

    var label = Ti.UI.createLabel({
        text : 'Foto album'
    });
    self.viewPort.add(label);
    self.add(self.viewPort);

    return self;
}
module.exports = FotoAlbum;

编辑: 忘了提一下,不要将对象附加到视图然后更改该对象的属性,因为 javascript 代理在 Titanium 中的功能,这将不起作用。

于 2013-11-11T18:48:42.213 回答