2014-05-07 43 views
0

我是使用worklight环境并且最近开始使用它的新手。我使用的是dojo版本1.9(IBM覆盖的一个),worklight 6.1,OS Windows 7,eclipse juno sr2 64bit,IE 10(用于RPE),Google Chrome最新版本(作为默认浏览器)。IBM Worklight 6.1 - 无法执行工作的Dojo视图转换

我已经尝试了dojo mobile中的许多小部件,并且它们都工作正常,我也经历了其他一些问题,例如“Worklight 6.1 Android Applicaiton呈现所有视图没有小部件”,并遵循解决方案中提供的所有步骤并成功创建并在MBS和android模拟器上查看页面。 唯一的问题是,当我正在处理意见。我从dojo和TabBarButtons添加了一个tabBar用于视图转换。还要在页面中添加几个视图并将它们与按钮链接起来。我也检查并看到我的main.js文件更新了所有包含的元素。 虽然工具栏与默认视图是可见的,但当我点击tabBar中的其他按钮时,它不会切换视图。 也onclicking的TabBarButtons铬控制台错误popsup - 遗漏的类型错误:未定义是不是一个函数

每次点击这个错误弹出。

这里是在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> 

//其余全部是默认代码,jQuery的版本没有变化或其他任何 我有还尝试了以下事情,但它们都不起作用: - - 从dojoLib/dojo/dojo/nls/core-web-layer.js和mobile-web-layer.js文件中复制并替换www文件夹中的文件。 - 将Tabbar从任何视图中直接放入body标签并将其链接到视图中。 - 向tabBar和tab按钮元素以及视图元素添加了id属性。 - 关闭提供缺少的库资源并包含缺少的文件(如果有),重建项目并再次运行。

+0

为什么要删除源代码的各种测试?提供不适合您的ACTUAL源代码。 –

+0

对不起,代码显示不正确,所以不得不删除它,它是我们拖放小部件时插入的所有默认代码。 –

+0

请重新添加,您刚才没有正确格式化它。我会修好它。 –

回答

3

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

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

一旦修复,您的示例将工作。

但还有另一个问题,这次是设计之一:TabBar fixed属性只有在与ScrollableView一起使用时才有意义(该属性确保Tabbar不滚动并保持其底部位置)。所以你的外部视图应该是一个ScrollableView。 另请注意,嵌套视图会带来一些限制。特别是,如果后者包含在另一个父级中,则使用'moveto'属性不能从视图转换到另一个视图。

不要犹豫了,看DojoX中/移动/测试并将documentation

+0

是的,它的工作现在。哇,这样一个小小的错误让我陷入了一个星期的困境。也许它是工作中的一个错误,我没有编写任何代码来确保我没有犯错误。这些'moveTo'属性是在属性视图中使用worklight UI设置的。另外值得注意的是,为幻灯片切换属性添加了引号(尽管这也是使用Worklight UI设置的)。是的,当我们创建一个tabBar时,'fixed bottom'属性也会默认添加。但是,感谢队友,我一定会通过文档。 –

相关问题