Rob*_*ian 243 routes angularjs angularjs-routing angularjs-ng-click angularjs-ng-route
假设您正在使用路线:
// 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'
});
...
Run Code Online (Sandbox Code Playgroud)
在您的html中,您希望在单击按钮时导航到about页面.一种方法是
<a href="#/about">
Run Code Online (Sandbox Code Playgroud)
...但似乎ng-click在这里也很有用.
<div ng-click="/about">
Jos*_*ler 430
路由监视$location服务并响应URL中的更改(通常通过哈希).要"激活"路线,只需更改URL即可.最简单的方法是使用锚标签.
<a href="#/home">Go Home</a>
<a href="#/about">Go to About</a>
Run Code Online (Sandbox Code Playgroud)
没有比这更复杂的了.但是,如果您必须通过代码执行此操作,则正确的方法是使用该$location服务:
$scope.go = function ( path ) {
$location.path( path );
};
Run Code Online (Sandbox Code Playgroud)
例如,按钮可以触发:
<button ng-click="go('/home')"></button>
Run Code Online (Sandbox Code Playgroud)
小智 82
这是一个没人提到的好建议.在函数所在的控制器中,您需要包含位置提供程序:
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>
Run Code Online (Sandbox Code Playgroud)
Ben*_*wee 33
使用自定义属性(使用指令实现)可能是最干净的方法.这是我的版本,基于@Josh和@sean的建议.
angular.module('mymodule', [])
// Click to navigate
// similar to <a href="#/partial"> but hash is not required,
// e.g. <div click-link="/partial">
.directive('clickLink', ['$location', function($location) {
return {
link: function(scope, element, attrs) {
element.on('click', function() {
scope.$apply(function() {
$location.path(attrs.clickLink);
});
});
}
}
}]);
Run Code Online (Sandbox Code Playgroud)
它有一些有用的功能,但我是Angular的新手,所以可能还有改进的余地.
| 归档时间: |
|
| 查看次数: |
357225 次 |
| 最近记录: |