假设你正在使用路由:

// 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中,当单击按钮时,您希望导航到关于页面。一种方法是

<a href="#/about">

... 但是ng-click似乎在这里也很有用。

这个假设正确吗?用ng-click代替anchor? 如果是的话,它是如何运作的呢?即:

<div ng-click=“/about”>


当前回答

这里有一个没人提到的好建议。在函数所在的控制器中,你需要包含位置提供程序:

app.controller('SlideController', ['$scope', '$location',function($scope, $location){ 
$scope.goNext = function (hash) { 
$location.path(hash);
 }

;]);

 <!--the code to call it from within the partial:---> <div ng-click='goNext("/page2")'>next page</div>

其他回答

另一种解决方案,但不使用ng-click,即使对<a>以外的其他标签也有效:

<tr [routerLink]="['/about']">

这样,您还可以将参数传递给路由:https://stackoverflow.com/a/40045556/838494

(这是我第一天使用angular。欢迎温和的反馈)

这里有一个没人提到的好建议。在函数所在的控制器中,你需要包含位置提供程序:

app.controller('SlideController', ['$scope', '$location',function($scope, $location){ 
$scope.goNext = function (hash) { 
$location.path(hash);
 }

;]);

 <!--the code to call it from within the partial:---> <div ng-click='goNext("/page2")'>next page</div>

就像这样做 在你的HTML中写:

<button ng-click="going()">goto</button>

在你的控制器中,按如下方式添加$state:

.controller('homeCTRL', function($scope, **$state**) {

$scope.going = function(){

$state.go('your route');

}

})

路由监视$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>

记住,如果你使用ng-click进行路由,你将无法右键单击元素并选择“在新选项卡中打开”或按ctrl单击链接。我尝试在导航时使用ng-href。Ng-click更适合用于操作按钮或折叠等视觉效果。 但 关于 我不推荐。如果你改变了路由,你可能需要改变应用程序中的很多地方。有一个返回链接的方法。例: 有关。将此方法放在实用程序中