Pregunta

Estoy usando los siguientes controles de la pestaña:

function tweetsAction()
{
    var w = dojox.mobile.currentView;
    if (w.id != "tweetsView") w.performTransition('tweetsView', 1, "slide", null);
}

function secondAction()
{
    var w = dojox.mobile.currentView;
    if (w.id != "secondView") w.performTransition('secondView', 1, "slide", null);
}

function thirdAction()
{
    var w = dojox.mobile.currentView;
    if (w.id != "thirdView") w.performTransition('thirdView', 1, "slide", null);
}

Inicializarlos en Worklight JavaScript, como:

function initCommonControls()
{
    console.log("Android initCommonControls");

    WL.TabBar.init();
    WL.TabBar.addItem("tweetsView", tweetsAction, "Tweets", {image:"images/icons/help_bw.png", imageSelected:"images/icons/help.png"});
    WL.TabBar.addItem("secondView", secondAction, "Second", {image:"images/icons/help_bw.png", imageSelected:"images/icons/help.png"});
    WL.TabBar.addItem("thirdView", thirdAction, "Third", {image:"images/icons/help_bw.png", imageSelected:"images/icons/help.png"});

    WL.TabBar.setSelectedItem("tweetsView");
}

Las pestañas aparecen bien en la aplicación LANZAM:

ingrese la descripción de la imagen aquí

Sin embargo, cuando hago clic en la segunda o tercera pestaña, ambos se mueven sobre el primero:

ingrese la descripción de la imagen aquí

y veo este error de JavaScript en la consola JS:

Tipo de TypeError desconocido: no se puede leer la propiedad 'ID' de UNDEFINED

lo que significa que `var w= dojox.mobile.currentview;no puede obtener la vista actual después de mover la pestaña inicial.

Esto es lo que se ve mi HTML:

<!-- Tweets View -->
    <div id="tweetsView" data-dojo-type="dojox.mobile.ScrollableView" data-dojo-props="selected: true">
        <div class="spacing"></div>
        <h1 id="head0" data-dojo-type="dojox.mobile.Heading" 
            data-dojo-props="label:'Tweet Search', fixed:'top'"></h1>
        <button onclick="getTweets()">Get Tweets</button>
        <input data-dojo-type="dojox.mobile.TextBox" id="sampleItem">
        <ul data-dojo-type="dojox.mobile.EdgeToEdgeList" id="theTable"
            class="tweetviewList">
        </ul>
    </div>

    <!-- second View -->
    <div id="secondView" data-dojo-type="dojox.mobile.ScrollableView" data-dojo-props="selected:false">
        <div class="spacing"></div>
        <h1 data-dojo-type="dojox.mobile.Heading" 
            data-dojo-props="label:'second view', fixed:'top'"></h1>
        This is a second view
    </div>

    <!-- third View -->
    <div id="thirdView" data-dojo-type="dojox.mobile.ScrollableView" data-dojo-props="selected:false">
        <div class="spacing"></div>
        <h1 data-dojo-type="dojox.mobile.Heading" 
            data-dojo-props="label:'third view', fixed:'top'"></h1>
        This is a third view
    </div>

¿Alguna idea de por qué el dojox.mobile.currentView no está devolviendo nada después de cambiar una pestaña?

¿Fue útil?

Solución

Supongo que está relacionado con esto: http://bugs.dojoolkit.org/ticket/15040.Parece que han eliminado dojox.mobile.currentview de las últimas versiones de Dojo Mobile.Actualmente estoy haciendo algunas cosas con Lightlight y también estoy recibiendo 'indefinido' para DOJOX.MOBILE.CURENTVIEW.

Hay un par de recomendaciones en esa página, pero parece que todo ahora necesita ser mucho más complejo, yay: (

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top