1

私のプロジェクトで 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() {

    });
  });

ここで、ボタンの 1 つをクリックすると、WL.Page.Load メソッドがトリガーされ、pagePort div が Test.html ページ (これを Page2.html としましょう) 内に新しいページを表示しますが、問題。Dojo はページ 1 では正常に動作しますが、ページ 2 では動作しません。舞台裏で何が起こっているのかはわかりませんが、ステップが抜けているように感じます (Dojo をアンロードする必要がありますか? 次のページで再度宣言しますか?)。

この 2 番目のページで Dojo を動作させるのを誰かが手伝ってくれて、(自分が間違っていることを学んだ後で) 以降のページで Dojo を使用できるようにしてくれたら、本当に感謝しています!

4

2 に答える 2

1

My best guess based on the info you've given is that Page2.html is not really inside Test.html and its a new page. In this case you will need to have the script references in Page2 as well.

If you're testing your code in a web browser you can view the Console and hopefully gain some insight as to what exactly is going wrong.

You can also try working with the Worklight logger to help locate the problem. http://wpcertification.blogspot.com/2012/03/enabling-debuglog-console-in-worklight.html

Here is a general link for "Problem Determination" from IBM as well 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 に答える