0

我正在尝试将 AngularJS 网络应用程序转换为多设备应用程序。

在 Web 应用程序中,我使用了 ngRoute。基本上是这样的

app.config(['$routeProvider',function ($routeProvider) {
$routeProvider
    .when('/Home',
          {
              controller: 'homeCtr',
              templateUrl: '/scripts/app/modules/home/home.html' 

          })

}]);

在 index html 页面中有一个简单的 href 和 ngView,如下所示:

<a ng-href="#/Home">Go to Home</a>
<div data-ng-view="">

</div>

如果我在 Ripple for android 中运行应用程序,它就像一个魅力,但在 Windows 或 Windows ARM 上根本不起作用!似乎它不知道如何解释链接上的#。

我该如何解决?

谢谢!

4

1 回答 1

1

多亏了这篇文章和这篇文章,我才明白了这一点!

基本上问题在于,当应用程序作为 Win App 发布时,href 会使用类似“unsafe:ms-appx”的前缀呈现。

要让它正常工作,只需添加此配置即可

app.config(['$compileProvider', function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|ghttps?|ms-appx|x-wmapp0):/);}]);

另外,请记住,当您在$routeProvider上配置 templateUrl 时,如果您希望应用程序在 Windows 中也能正常工作,则不能以“/”开头您的 url(我曾经将模板 url 设置为“/app/views” /myView.html"以确保路径从根目录开始,但这种方法似乎不适用于 windows app )。

谢谢!

于 2014-11-04T23:09:50.847 回答