Я столкнулся с этой проблемой при разработке примера приложения. Ссылка jsfiddle, которую я использую, имеет базовую функциональность открытия всплывающего окна при нажатии кнопки. Поскольку визуализированная функция получает вызов только один раз при создании, таким образом отключая сначала указатель-указатель и пятно. Но почему каждый раз необходимо, чтобы enyo отключил режим указателя и задал место разработчику компонента.Нет Spotlight on moon.inputDecorator «SECOND TIME» при отключении указателя в визуализированном
Мое требование в том, что всякий раз, когда всплывающее окно открывает диалоговое окно, прожектор должен находиться на компоненте, который я указал. Это может быть первый компонент во всплывающем или проявленном ядре, который я мог бы не знать о других способах делать/приближаться к ним, поэтому, пожалуйста, дайте мне знать.
Вот jsfiddle ссылка:
http://jsfiddle.net/pL1cawnw/1/
enyo.kind({
name:'app',
kind:'enyo.Control',
components:[
{name:'popupBtn',kind:'moon.Button', content:'Open', ontap:'btnTapped'},
{name:'popupBtn2',kind:'moon.Button', content:'Dummy'},
{name:'inputPopUp', kind: 'inputPop'}
],
btnTapped:function(){
this.$.inputPopUp.show();
},
rendered: function(){
this.inherited(arguments);
enyo.Spotlight.setPointerMode(false);
enyo.Spotlight.spot(this.$.popupBtn);
}
});
enyo.kind({
name:'inputPop',
kind:'enyo.Popup',
center:true,
scrim:true,
floating:true,
components:[
{name:'inputDecorator', spotlight: true, kind:'moon.InputDecorator', style:'width:200px; height: 80px', components:[
{kind:'moon.Input', name:'input', dismissOnEnter:true}
]}
],
create:function(){
this.inherited(arguments);
},
rendered: function(){
this.inherited(arguments);
enyo.Spotlight.setPointerMode(false);
enyo.Spotlight.spot(this.$.inputDecorator);
}
});
new app().renderInto(document.body);
Помимо этого способ сделать первоначальный фокус, есть ли другой способ достичь того же?