2013-11-11 5 views
1

Мне кажется, что я не могу получить доступ к свойству viewPort из FotoAlbum из любого другого модуля, и я не могу запустить какую-либо функцию, которую я пытаюсь добавить в FotoAlbum. Im совершенно новый для 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; 

ответ

1

this относится к контексту функцииFotoAlbum, но вы используете эту функцию, чтобы создать и вернуть вид, поэтому вы не можете получить доступ к функции контекста, и поэтому атрибуты прикреплены к Это.

Итак, чтобы сделать эту работу, просто приложите свои методы и атрибуты самого представления, как это:

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; 

EDIT: Забыл упомянуть, не придают объекты к виду, а затем изменить атрибуты этого объекта, которые не будут работать из-за того, как прокси-серверы javascript работают в Titanium.

+0

Хорошо, спасибо за вашу жизнь, никогда, хотя вы, где это разрешено. –

Смежные вопросы