2017-02-07 9 views
-1

http://localhost:6060/homeと入力すると/homeを得ることができませんでしたが、ボタン$state.go('home')をクリックすると、URLはまだhttp://localhost:6060/homeです。しかし、私がリフレッシュするとき、それはまだ表示されません。 URLを入力すると、どのように表示されますか?ここでURLの更新時に角のUI-Routerが見つかりません

は私のコードです:

router.js

$stateProvider.state("home", { 
    url: "/home", 
    template: "<h2>I am a router test</h2>" 
}); 
$locationProvider.html5Mode(true); 

index.htmlを

<head> 
    <title>for test</title> 
    <base href="/"> 
</head> 
<body ng-app="my.module"> 
    <h1>I am just a test</h1> 
    <div ng-controller="test"><button class="btn btn-default" 
     ng-click="testclick()">click me</button></div> 
    <ui-view></ui-view> 
</body> 

コントローラー:

$scope.testclick = function() { 
    $state.go('home'); 
}; 

私は$locationProvider.html5Mode(true);を使用していないしていない場合セットbaseタグを入力すると、localhost:6060/#!/homeと入力する必要があります。 !の意味は?

+0

'.config()'コードを追加できますか? – pryxen

+1

http://stackoverflow.com/documentation/angularjs/3208/angularjs-gotchas-and-traps/21798/things-to-do-when-using-html5mode#t=201702070409442702025も参照してください。 – Phil

答えて

0

サーバー側(PHP、Node.jsなど)はありますか? html5Mode(true)を使用するには、すべてのルートをインデックスページに転送するサーバー側の設定が必要です。したがって、「取得できません」というエラーを表示せずにページを更新することができます。何


!平均?

これを理解するために、あなたはAngular documentation読んでください:感嘆符文字!は、デフォルトのURL形式ともレガシーブラウザでHTML5モードのフォールバックで、hashbangモードです。

関連する問題