我想从当前 URL 中提取数据并在控制器中使用它。
例如我有这个网址:
app.dev/backend/surveys/2
我想要提取的位:
应用程序.dev/后端/:type / :id
Angular 中有什么可以帮助我完成这项任务吗?
从 URL 获取参数ngRoute
。这意味着您需要包括角度路线.js https://github.com/angular/bower-angular-route在您的应用程序中作为依赖项。有关如何执行此操作的更多信息,请访问官方ngRoute 文档 http://docs.angularjs.org/api/ngRoute.
问题的解决方案:
// You need to add 'ngRoute' as a dependency in your app
angular.module('ngApp', ['ngRoute'])
.config(function ($routeProvider, $locationProvider) {
// configure the routing rules here
$routeProvider.when('/backend/:type/:id', {
controller: 'PagesCtrl'
});
// enable HTML5mode to disable hashbang urls
$locationProvider.html5Mode(true);
})
.controller('PagesCtrl', function ($routeParams) {
console.log($routeParams.id, $routeParams.type);
});
如果您不启用$locationProvider.html5Mode(true);
。网址将使用 hashbang(/#/
).
更多关于路由的信息可以在官方的 Angular 上找到$route API 文档 http://docs.angularjs.org/api/ngRoute/service/%24route.
边注:这个问题正在回答如何使用 ng-Route 实现这一点,但是我建议使用ui-路由器 http://angular-ui.github.io/ui-router/用于路由。它更灵活,提供更多功能,文档很棒,被认为是 Angular 的最佳路由库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)