【问题标题】:dojo parser error with core-web-layer.js:56dojo 解析器错误与 core-web-layer.js:56
【发布时间】:2013-08-08 17:04:00
【问题描述】:

我在 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>

我有什么遗漏或做错了吗?

【问题讨论】:

标签: view dojo ibm-mobilefirst dojox.mobile worklight-studio


【解决方案1】:
  • dojox/mobile/View 上没有“回调”属性。正如您在文档中所读到的,该属性 确实存在于 dojox/mobile/_ItemBase 及其子类,例如 dojox/mobile/ListItem.
  • 在您的代码中,initializarMainPage() 恰好被执行,因为您在 View 的 data-dojo-props 属性中的“回调”值中使用了 ()。解析器评估您的“回调:initializarMainPage()”的右侧,然后执行您的函数。如果你用其他任何东西替换“回调”,它仍然会被调用......
  • 正如 David 所建议的那样,“()”后缀不正确,应该删除,这适用于“回调”属性(应该移动到列表项)和 onclick="validarDatosAuto( );"。
  • 修复这些问题,并确保正确需要 HTML 中使用的所有模块(至少需要 dojox/mobile 和 dojox/mobile/CheckBox),我在任一 Dojo 1.8.3 中都没有遇到任何解析错误或 1.9。

【讨论】:

    【解决方案2】:

    其他一些项目也遇到了完全相同的错误,因为它们的应用程序主体上有 display:none。可见性:应该使用隐藏。这解决了他们的问题。

    【讨论】:

      【解决方案3】:

      最近更新到worklight6.2,遇到了和你一样的问题。但最后,幸运的是,我通过更改所有 html 文件中的字段 data-dojo-props 来解决这个问题。我发现worklight6.2只允许data-dojo-props的值是双引号,在worklight6.2之前,我习惯使用单引号。

      例如:data-dojo-props="transition:'zoomIn',dir:'1'"。所以,也许你的问题是关于这个道具的。仅供参考,多尝试。

      【讨论】:

      • 它根本与 Worklight 无关,而是与 Worklight 附带的 Dojo 版本 Dojo 1.9 相关。
      猜你喜欢
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      相关资源
      最近更新 更多