AngularJS路由无法在Windows Phone 8上运行(使用Worklight)

时间:2014-08-28 07:51:01

标签: angularjs windows-phone-8 ibm-mobilefirst

我正在使用IBM Worklight为iOS,Android,BB和Windows开发混合应用程序。

我使用AngujarJS作为框架以及HTML,CSS和Bootstrap。

由于这是SPA,我们使用ngRoute / UI.Route(需要决定是否继续使用ngRoute或UI.Route)来在页面之间进行路由。

虽然该应用在iOS,Android和BB上运行良好,但它在Windows Phone 8 Hybrid App上无法呈现任何内容。意思是,当我们说

时,它无法选择文件
templateUrl : 'views/Login.html'

一篇博客建议我们必须提供绝对路径,以使其像 -

一样工作
templateUrl : 'www/default/views/Login.html'

但这不是正确的解决方案。我们需要做些什么设置才能使它在windows8手机上运行。

先谢谢你。

2 个答案:

答案 0 :(得分:2)

我不相信这与AngularJS有关,而是与jQuery中结合Windows Phone8使用的纯JavaScript一起使用,Windows Phone8在基于网络的多页面应用程序时效果不佳。

有关相关问题,请参阅以下问题:

  1. Using jquery mobile in IBM Worklight for WIndows Phone 8
  2. IBM Worklight v 5.0.6 - Can't navigate multipages on Windows Phone 7.5 environment
  3. IBM Worklight - $("#pagePort").load() not working in Windows Phone 8
  4. IBM Worklight 6.0 - WL.Client.reloadApp() not working in Windows Phone 8

答案 1 :(得分:1)

问题在于使用的路径。

查看IBM Worklight Getting Started webpage中提供的多页示例项目。它包含WP8的特殊处理,您可能需要将其应用于您的项目。

Building a multi-page application training module

Multi-page sample project

请注意路径是如何专门为Windows Phone 8处理的。

<强>常见\ main.js:

var path = "";

function wlCommonInit(){
    // Special case for Windows Phone 8 only.
    if (WL.Client.getEnvironment() == WL.Environment.WINDOWS_PHONE_8) {
        path = "/www/default/";
    }    ...    ... }

结论:您需要考虑WP8与其他平台的路径。