如何在Worklight中正确使用Dojo?

时间:2012-10-30 08:14:35

标签: dojo ibm-mobilefirst

我需要一些帮助,以及如何在我的项目中正确使用Dojo的一些建议。目前,这就是我正在做的事情:

假设我设置了一个名为“Test”的项目。 Test.html是第一个文件命中,在该文件中我有以下内容:

<script type="text/javascript" data-dojo-config="isDebug: false, async: true, parseOnLoad: true" src="dojo/dojo.js"></script>
<script type="text/javascript" src="dojo/core-web-layer.js"></script>
<script type="text/javascript" src="dojo/mobile-ui-layer.js"></script>
<script type="text/javascript" src="dojo/mobile-compat-layer.js"></script>
<script type="text/javascript">
  require(
  // Set of module identifiers
  [ "dojo", "dojox/mobile/parser", "dojox/mobile/SwapView", "dojox/mobile", "dojox/mobile/compat", "dojox/mobile/deviceTheme", "dojox/mobile/ScrollableView" ],
  // Callback function, invoked on dependencies evaluation results  
  function(dojo) {
    dojo.ready(function() {});
  });
</script>   

我在Test.js中也有这个:

require([ "dojo", "dojox/mobile/parser", "dojox/mobile/deviceTheme",
  "dojox/mobile/ScrollableView", "dojox/mobile/compat", "dojox/mobile",
  "dojox/mobile/Button", "dojox/mobile/View", "dojox/mobile/Heading",
  "dojox/mobile/TabBarButton", "dojox/mobile/TabBar",
  "dojox/mobile/TextBox", "dojox/mobile/RoundRectList",
  "dojox/mobile/ListItem", "dojox/mobile/Button",
  "dojox/mobile/SpinWheel", "dojox/mobile/SpinWheelSlot",
  "dojox/mobile/IconContainer", "dojox/mobile/SwapView" ], 
  function(dojo, parser) {
    dojo.ready(function() {

    });
  });

现在,当我单击其中一个按钮时,它会触发WL.Page.Load方法,而我的pagePort div现在会在我的Test.html页面中显示我的新页面(假设这是Page2.html),但是,有一个问题。 Dojo的东西在第一页上运行正常,但现在它在第二页上不起作用。我不确定幕后发生了什么,但我觉得我错过了一步(我是否需要卸载Dojo?在下一页再次声明它?)。

如果有人可以帮助我让Dojo在第二页上工作,那么我可以在更多页面上使用Dojo(在了解我做错了之后)我真的很感激!

2 个答案:

答案 0 :(得分:1)

根据您提供的信息,我最好的猜测是Page2.html实际上并不在Test.html中,而是一个新页面。在这种情况下,您还需要在Page2中使用脚本引用。

如果您在Web浏览器中测试代码,则可以查看控制台,并希望获得有关确切错误的一些信息。

您还可以尝试使用Worklight记录器来帮助找到问题所在。 http://wpcertification.blogspot.com/2012/03/enabling-debuglog-console-in-worklight.html

以下是IBM的“问题确定”的一般链接 http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.ibm.iea.worklight/worklight/5.0/Problem_Determination/IMFV50_ProblemDetermination/player.html

答案 1 :(得分:0)

正如尼克所说,如果您加载完全不同的HTML页面,您将拥有该页面来声明您正在使用的类。在dojox / mobile / tests中,请参阅test_IconContainer.html。

也就是说,您可以通过使用片段机制(例如,参见https://www.ibm.com/developerworks/mobile/worklight/getting-started/模块60.1,2和3)将您的备用视图定义在相同的HTML或Worklight中来进行不同的操作。