2016-11-23 5 views
0

私はリンクとパスをAngular 1.5で書くためのベストプラクティスを探しています。私は、HTML文書内のベースREFを持っているとき、これは動作しませんhtml5モードでリンク(path、href)を書くための角度的なベストプラクティス

angular.module('my-app', ['ngRoute']) 
    .config(function ($locationProvider) { 
     $locationProvider.html5Mode({enabled: true}); 
    }); 

:以下の構成を考えると

<html> 
    <head> 
     <base href="/my-app/"/> 
     ... 
    </head> 
    <body> 
     <a ng-href="/my-section">My section</a> 
    </body> 
</html> 

リンクをクリックすると、絶対URL/my-で私を置きますセクションは存在しません。同じことがロケーションサービスのために行く:

$location.path('/my-section') // Change my url at /my-section, not /my-app/my-section 

は、これは、簡単に効果があり、相対するもので、すべての私のリンクを交換したり、それに応じて/私のアプリ/私のセクションに私をリダイレクトすることによって固定されている:

<a ng-href="my-section">My section</a> 
$location.path('my-section') 

しかし、$ロケーションサービスのマニュアルに従って:それが欠落している場合

パスは常にスラッシュ(/)で始める必要があり、この方法は スラッシュを追加します。 https://docs.angularjs.org/api/ng/service/ $場所

これは、スラッシュを使用してすべてのリンクを開始することを推奨しています。私の場合、これはどのように可能ですか?

答えて

0

あなたのアプリインデックスが 'http://example.com/'のように見える場合は、ベースのhrefとして '/'だけを付けるべきだと思います。

インデックスのURLが 'http://example.com/my-app/'の場合、ベースhrefの値は '/ my-section'になります。

実際には、インデックスページのURLによって異なります。だから、この方法で行ってください:)

+0

スラッシュ? –

0
<html> 
    <head> 
      <base href="/"></base> 
     ... 
    </head> 
    <body> 
     <a ng-href="my-app/my-section">My section</a> 
    </body> 
</html> 

セットベースURLとして前方ですから、セクションごとに一つの基地HREFを使用することを示唆している

+0

これはいい考えですが、私は状態ルータを使用していません。 –

+0

私の答えを変更しました。ご注意ください –

関連する問題