IBM Worklight 6.1 - 无法进行有效的Dojo视图转换

时间:2014-05-07 10:30:06

标签: dojo ibm-mobilefirst worklight-studio

我是工作环境的新手,最近开始研究它。

我正在使用dojo版本1.9(IBM支持的版本),worklight 6.1,OS windows 7,eclipse juno sr2 64bit,IE 10(适用于RPE),Google Chrome最新版本(默认浏览器)。

我在dojo mobile中尝试了很多小部件并且所有这些小部件工作正常,我也遇到过其他问题,例如“Worklight 6.1 Android Applicaiton呈现所有没有小部件的视图”并遵循解决方案中给出的所有步骤并成功创建了查看了MBS和Android模拟器上的页面。 唯一的问题是我正在处理观点。我从dojo和TabBarButtons添加了一个tabBar用于视图转换。还要在页面中添加一些视图,并将它们与按钮链接。我还检查并看到我的main.js文件已更新所有包含的元素。 虽然工具栏和默认视图是可见的,但是当我单击tabBar中的其他按钮时,它不会切换视图。 也点击TabBarButtons铬控制台中的错误弹出窗口 - 未捕获的TypeError:undefined不是函数

每次点击都会弹出此错误。

这是我在index.html文件的body标签中的源代码的结构: -

<body style="display: none;">
<div data-dojo-type="dojox.mobile.View" id="view2"
        data-dojo-props="selected:true">
    <div data-dojo-type="dojox.mobile.View" id="view0" data-dojo-props="selected:true" >
            <div data-dojo-type="dojox.mobile.Heading"
        data-dojo-props="label:'Hello world'"></div>

        <button data-dojo-type="dojox.mobile.Button">Hello</button>
        <input data-dojo-type="dojox.mobile.TextBox"><input type="range"
            data-dojo-type="dojox.mobile.Slider"
            data-dojo-props="orientation:'H'">


    </div>
    <div data-dojo-type="dojox.mobile.View" id="view1"
        data-dojo-props="selected:false">
        <div data-dojo-type="dojox.mobile.Heading"
            data-dojo-props="label:'About',moveTo:'view0'">
            </div>
        <div data-dojo-type="dojox.mobile.RoundRect">
        Hello, we are a leading company in innovations
        </div>
    </div>
    <ul data-dojo-type="dojox.mobile.TabBar" fixed="bottom" id="Tab1">
        <li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props="moveTo:view0,transition:'slide'" id="tabB1">Home</li>
        <li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props="moveTo:view1,transition:'slide'" id="tabB2">About</li>
    </ul>
    </div>
    <script src="js/initOptions.js"></script>
            <script src="js/main.js"></script>
            <script src="js/messages.js"></script>
    </body>

// Rest all是默认代码,jquery版本或其他任何内容都没有变化 我也尝试过以下的事情,似乎没有一个能起作用: - 从dojoLib / dojo / dojo / nls / core-web-layer.js和mobile-web-layer.js文件中的www文件夹中复制和替换文件。 - 将Tabbar从任何视图中直接保存到body标签和链接视图中。 - 为tabBar和制表符按钮元素以及视图元素添加了id属性。 -turned off提供缺少的库资源并包含丢失的文件(如果有的话),重建项目并再次运行。

1 个答案:

答案 0 :(得分:3)

主要问题(导致异常)是moveto属性的视图ID周围缺少引号。它应该是:

data-dojo-props="moveTo:'view0',

修复后,您的样本将起作用。

但还有另一个问题,这次是设计问题:TabBar fixed属性仅在与ScrollableView一起使用时才有意义(此属性确保标签栏不滚动并保持其底部位置)。所以你的外部视图应该是ScrollableView。 另请注意,嵌套视图有一些限制。特别是,使用&#39; moveto&#39;如果后者包含在另一个父视图中,则无法从视图转换到另一个视图。

不要犹豫,看看dojox / mobile / tests和documentation

中的各种测试