ошибка синтаксического анализатора 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