0

AngularJS Web アプリをマルチ デバイス アプリに変換しようとしています。

Web アプリケーションでは、ngRoute を使用しました。基本的にこのようなもの

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

          })

}]);

インデックス 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 アプリとして公開されると、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 を「/」で始めることはできないことに注意してください (以前は「/app/views」のようにテンプレート URL を設定していました) /myView.html"を使用して、パスがルートから始まることを確認しますが、このアプローチは Windows アプリでは機能しないようです)。

ありがとう!

于 2014-11-04T23:09:50.847 に答える