0

я следующий код (index.js):Титановый сплав: получить текущее окно от требуемого зрения

<Alloy> 
 
    <Window id="home" > 
 
    <View id="formulaire"> 
 
\t <Require type="view" id="etape_1_form" src="form/etape_1" /> 
 
\t </View> 
 
    </Window> 
 
</Alloy>

На etape_1_form.xml я должен использовать сборщика виджет из: danielhanold.pickerwidget

вот простой метод, чтобы использовать этот виджет внутри etape_1_form.js (контроллер):

Alloy.createWidget('danielhanold.pickerWidget', { 
 
    id: 'mySingleColumn', 
 
    outerView: $.home, 
 
    hideNavBar: false, 
 
    type: 'single-column', 
 
    selectedValues: [20], 
 
    pickerValues: [{10: 'Auburn', 20: 'Bald', 30: 'Black', 40: 'Blond', 50: 'Brown'}], 
 
    onDone: function(e) { 
 
    // Do something 
 
    }, 
 
}); 
 

 
$.form_win.open();

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

outerView: $.home 
The error : "undefined is not an object (evaluating 'outerView.add') 

Когда я двигаю сборщик к index.js (основной контроллер) сборщик работает, но у меня есть много необходимых форм и вы хотите организовать мой код, поэтому мне нравится помещать каждый код js внутри файла контроллера.

Так как я могу получить доступ к окну .home из требуемого вида? спасибо за помощь.

ответ

1

Нет, вы не можете напрямую.

Но вы можете легко избежать этого, используя «globals».

На index.js:

Alloy.Globals.indexController = $; 

На etape_1_form.js

outerView: Alloy.Globals.indexController.home 
Смежные вопросы