ルートを使用しているとします:
// bootstrap
myApp.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider.when('/home', {
templateUrl: 'partials/home.html',
controller: 'HomeCtrl'
});
$routeProvider.when('/about', {
templateUrl: 'partials/about.html',
controller: 'AboutCtrl'
});
...
そしてHTMLでは、ボタンがクリックされたときにaboutページに移動したいとします。1つの方法は
<a href="#/about">
...しかし、ここでも ng-click が役に立つようです。
- その仮定は正しいですか? アンカーの代わりに ng-click が使用されるということですか?
- もしそうなら、それはどのように機能するのでしょうか? 例えば:
<div ng-click="/about">
ベストアンサー1
ルートは$location
サービスを監視し、URL の変更に応答します (通常はハッシュを通じて)。ルートを「アクティブ化」するには、URL を変更するだけです。これを行う最も簡単な方法は、アンカー タグを使用することです。
<a href="#/home">Go Home</a>
<a href="#/about">Go to About</a>
これ以上複雑なものは必要ありません。ただし、コードからこれを実行する必要がある場合は、サービスを使用するのが適切な方法です$location
。
$scope.go = function ( path ) {
$location.path( path );
};
たとえば、ボタンによって次の操作がトリガーされます。
<button ng-click="go('/home')"></button>