Javascript Worklight 6.2:无法在windows phone 8环境中添加多个js文件

Javascript Worklight 6.2:无法在windows phone 8环境中添加多个js文件,javascript,windows-phone-8,ibm-mobilefirst,Javascript,Windows Phone 8,Ibm Mobilefirst,我使用Worklight为Android、iOS和WindowsPhone8平台创建了一个多页面应用程序。在该应用程序中,我必须在某些页面中包含多个js文件,这会在WindowsPhone8环境中产生问题 问题:如果我包含多个js文件,在WindowsPhone8环境中只加载第一个js文件 我使用Worklight多页应用程序创建了一个示例应用程序来演示该问题 在Page1.html中,我包含了2个js文件 <script> $.getScript(path + "js/Pa

我使用Worklight为Android、iOS和WindowsPhone8平台创建了一个多页面应用程序。在该应用程序中,我必须在某些页面中包含多个js文件,这会在WindowsPhone8环境中产生问题

问题:如果我包含多个js文件,在WindowsPhone8环境中只加载第一个js文件

我使用Worklight多页应用程序创建了一个示例应用程序来演示该问题

在Page1.html中,我包含了2个js文件

<script>
    $.getScript(path + "js/Page1.js");
    $.getScript(path + "js/Sample.js");
</script>

<p>
    Currently <b>Page1.html</b> page is loaded.
</p>

<input type="button" class="appButton" value="Show Alert" onclick="alertHello();" />
<input type="button" class="appButton" value="SimpleDialog from Page1" onclick="currentPage.buttonClick();" />
<input type="button" class="appButton" value="Insert Fragment" onclick="currentPage.insertFragment();" />

<div id="FragmentsDiv"></div>

<input type="button" class="appButton" value="BACK" onclick="currentPage.back();" />
当我尝试在WindowsPhone8环境下运行应用程序时,只有Page1.js正在加载

重现错误的步骤

  • 单击“加载页面1.html”

  • 单击“显示警报”

  • 我在windows phone 8模拟器/设备中尝试时未收到“hello”警报


    如果您能帮助解决此问题,我们将不胜感激。

    在windows Phone 8 emulator(通过Visual Studio 12)中测试您的示例项目,单击第1页按钮后,我收到一条警告:“sample.js loaded”。然后我点击了“显示警报”按钮,收到一条警报,说“你好”

    无法复制…
    您的示例在Worklight Studio 6.2.0.00-20140818-1919(与您的版本和版本相同)中运行良好

    也许你应该编辑你的问题,并提供完整的步骤,你已经采取,以重现这一点;也许你错过了一步

    我所做的:

  • 导入项目
  • 右键单击Windows Phone 8文件夹>运行方式>Visual Studio项目
  • VS打开>单击“播放”按钮
  • WP8 emulator opens>是否执行了上述操作

  • 您需要等待第一个脚本完成后才能加载第二个脚本。 getScript接受第二个参数,您可以传递一个函数,也可以将and chain之类的承诺与done()函数一起使用

    
    $.getScript(路径+“js/Page1.js”).done(函数(){
    $.getScript(路径+“js/sample.js”);
    });
    
    我试过我自己,结果成功了


    还请注意,在代码中的问题中使用带大写“S”的Sample.js,在注释中提到带小写“S”的Sample.js。我在文件名和代码中都使用sample.js。

    您是否看过IBM Worklight提供的多页示例应用程序,该应用程序演示了如何在Windows Phone 8上实现此功能?仔细看看代码:是的,我只使用了多页示例应用程序。与文档一样,windows phone 8应用程序的路径不同,该值在加载脚本时使用“path”变量包含。我的问题是,第一个js文件正在加载,但第二个js文件没有加载。示例正在运行,因此,如果您的工作不正常,请提供一个可以调试的完全工作的Worklight项目,否则提供的代码块不够。在示例中,只有一个js文件。如果我们再包含一个,第二个文件就不会加载。项目的文件结构是什么?该页面是位于index.html旁边还是位于pages\文件夹内?如果您从pages\文件夹(从中加载第一页)加载第二页,则路径不再是相同的路径,我认为对于第二页,您需要添加“.”以返回pages文件夹以查找第二页。即使我也看到过同样的问题。只是无法找出问题所在,可能我有点偏见。但是,除了不加载这个问题之外,这种导入javascript文件的风格的改变实际上是让我们头疼的。因为现在,我们已经用“$.script(..”)只为windows导入覆盖了所有html页面。“”导入应该适用于所有人,不是吗?谢谢卡洛斯。然而,我对Windows mobile dev存在这样的限制感到失望,我们必须采用这种解决方法。可重用性在这里受到了挑战。
    $(document).ready(function(){
        alert("sample.js loaded");
    });
    
    function alertHello()
    {
        alert("hello");
    }
    
    <script>
      $.getScript(path + "js/Page1.js").done(function(){
        $.getScript(path + "js/sample.js");
      });
    </script>