为确保正确路由,您可以使用 ui-router。
这是一个关于plunker的例子
这是如何工作的:
1 - 按照他们的 github 上的安装指南
2 - 写下你的状态定义:
app.config(function($stateProvider, $urlRouterProvider){
//If no route match, you'll go to /index
$urlRouterProvider.otherwise('/index');
//my index state
$stateProvider
.state('index', {
url: '/index',
templateUrl: 'index2.html',
controller: 'IndexCtrl'
})
//the variable state depending on an url element
.state('hello', {
//you will be able to get name with $stateParams.name
url: '/hello/:name',
templateUrl: 'hello.html',
controller: 'HelloCtrl'
})
});
3 - 按州名写链接:
//add this directive to an html element
//This will go to /index
ui-sref="index"
//This will go to /hello/
ui-sref="hello"
//This will go to /hello/ben
ui-sref="hello({name:'ben'})"
//This will go to /hello/{myname}
ui-sref="hello({name:myname})"
4 - 将参数放入您的控制器:
//inject $stateParams
app.controller('HelloCtrl', function($scope, $stateParams){
$scope.controller = "IndexCtrl";
//get the param name like this
$scope.name = $stateParams.name;
});
希望它有所帮助。还要记住,ui-router 有一些非常强大的工具,例如解析和嵌套状态/视图。您现在或以后可能需要这些论文。
PS:如果 plunker 不起作用,只需 fork 并再次保存。