грешка на анализатора на dojo с core-web-layer.js:56

имам приложение в worklight 6.0.0 и с dojo 1.9 и когато добавя функция за обратно извикване и извършвам преход към този изглед, получавам тази грешка:

dojo/parser::parse() error at file:///data/data/com.WorklightApp/files/www/default/layers/core-web-layer.js:56

<div data-dojo-type="dojox.mobile.View" id="view_MainPage"
data-dojo-props="callback:inicializarMainPage()">
<ul data-dojo-type="dojox.mobile.Heading">

    <button data-dojo-type="dojox.mobile.ToolBarButton" src="images/persona.png"
        data-dojo-props="transition:'zoomIn',dir:'1',url:'pages/datosPersona.html'">Persona</button>
    <button data-dojo-type="dojox.mobile.ToolBarButton"
        style="text-align: center" data-dojo-props="arrow:'right'"
        onclick="validarDatosAuto();" type="button">Siguiente</button>
</ul>
<div>
    <p id="mensaje_error_main_page"
        style="font-weight: bold; text-align: center; vertical-align: middle; font-style: italic"></p>
    <hr />
    <ul data-dojo-type="dojox.mobile.RoundRectList">



        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"><label
            for="policy">Marca:</label>
            <div id="marca" style="float: right">

                <select id="marcaSelect"  onchange="cargarComboBox('marca');">
                    <option value="" selected>Seleccionar</option>
                    <option value="Chevrolet">Chevrolet</option>
                    <option value="Ford">Ford</option>
                </select>
            </div></li>
        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"
            id="modeloLi" hidden="true"><label for="policy">Modelo:</label>
            <div id="modelo" style="float: right">
                <select id="modeloSelect" onchange="cargarComboBoxVersion()">
                    <option value="" selected>Seleccionar</option>

                </select>
            </div></li>
        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"
            hidden="true" id="versionLi"><label for="policy">Version:</label>
            <div id="version" style="float: right">
                <select id="versionSelect"
                    onchange="removerOpcionDeUnSelect('versionSelect')">
                    <option value="" selected>Seleccionar</option>

                </select>
            </div></li>

        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"><label
            for="policy">0 KM:</label>
            <input id="ceroKMCheckBox" data-dojo-type="dojox.mobile.CheckBox" type="checkbox">
        </li>
        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"><label
            for="policy">A&ntilde;o:</label>
            <div id="anio" style="float: right">
                <select id="anioSelect">
                    <option value="2013">2013</option>
                    <option value="2012">2012</option>
                    <option value="2011">2011</option>
                </select>
            </div></li>
        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"><label
            for="policy">GNC</label> <input id="gncCheckBox"
            data-dojo-type="dojox.mobile.CheckBox" type="checkbox"></li>
        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"><label
            for="policy">Provincia:</label>
            <div id="provincia" style="float: right">
                <select id="provinciaSelect" onclick="" autofocus="autofocus"
                    onchange="cargarComboBox('provincia');">
                    <option value="" selected>Seleccionar</option>
                    <option value="Cordoba">Cordoba</option>
                    <option value="buenosAires">Buenos Aires</option>
                    <option value="santaFe">Santa Fe</option>
                    <option value="sanLuis">San Luis</option>
                    <option value="mendoza">Mendoza</option>
                    <option value="capitalFederal">Capital Federal</option>
                </select>
            </div></li>
        <li data-dojo-type="dojox.mobile.ListItem" class="mblVariableHeight"
            id="localidadLi" hidden="true"><label for="policy">Localidad:</label>
            <div id="localidad" style="float: right">
                <select id="localidadSelect"
                    onchange="removerOpcionDeUnSelect('localidadSelect')">
                    <option value="" selected>Seleccionar</option>
                </select>
            </div></li>


    </ul>
</div>

Is there something that im missing or im doing wrong?


person user2449016    schedule 08.08.2013    source източник
comment
Изглежда, че проблемът може да е (). Разгледайте: stackoverflow.com/questions/13008629/   -  person David Dhuyveter    schedule 08.08.2013


Отговори (3)


  • Няма свойство „обратно извикване“ на dojox/mobile/View. Както можете да прочетете в документацията, свойството съществува в dojox/mobile/_ItemBase и неговите подкласове като dojox/mobile/ListItem.
  • С вашия код inicializarMainPage() се изпълнява точно защото сте използвали () в стойността на "обратно извикване" в атрибута data-dojo-props на изгледа. Анализаторът оценява дясната страна на вашето "обратно извикване: inicializarMainPage()" и това изпълнява вашата функция. Ако замените „обратно повикване“ с нещо друго, то пак ще бъде извикано...
  • Както беше предложено от Дейвид, суфиксът "()" е неправилен и трябва да бъде премахнат и това важи както за свойството "обратно извикване" (което трябва да бъде преместено в елементите на списъка), така и за onclick="validarDatosAuto();" .
  • Поправяйки тези проблеми и гарантирайки, че всички модули, използвани в HTML, са необходими правилно (трябва да изисквате поне dojox/mobile и dojox/mobile/CheckBox), не получавам никаква грешка при анализиране нито в Dojo 1.8.3, нито в 1.9.
person Adrian Vasiliu    schedule 14.08.2013

Някои други проекти срещнаха точно същата грешка, защото имаха display:none в тялото на приложението си. видимост: скрит трябва да се използва вместо това. Това реши проблема им.

person Christophe    schedule 19.08.2013

Наскоро актуализирах до worklight6.2 и срещнах същия въпрос като вашия. Но като последно, за щастие, разрешавам това, като променям полето data-dojo-props във всички html файлове. Открих, че worklight6.2 позволява само стойността на data-dojo-props да бъде двойна в кавички, преди worklight6.2 използвах единични кавички.

Например: data-dojo-props="transition:'zoomIn',dir:'1'". Така че може би въпросът ви е за този реквизит. само за ваша справка, опитайте повече начини.

person aiby    schedule 10.09.2014
comment
Това ИЗОБЩО не е свързано с Worklight, а с версията на Dojo, доставена с Worklight, Dojo 1.9. - person Idan Adar; 10.09.2014