1

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

假设我设置了一个名为“测试”的项目。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() {

    });
  });

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

如果有人可以帮助我让 Dojo 在第二页上工作,以便我能够在更多页面上使用 Dojo(在了解我做错了什么之后),我将非常感激!

4

2 回答 2

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

于 2012-11-19T17:46:47.483 回答
0

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

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

于 2012-11-27T15:05:38.773 回答