我在我的 Rails 应用程序中玩 angular。这不是一个单页应用程序,我只是在几个地方使用了 Angular。我很难从 uri 获取路由参数以在我的资源中使用。
例如,假设我在页面 /users/1/posts/2 上。如何同时获得 user_id 和 id(用于帖子)?
谢谢。
我在我的 Rails 应用程序中玩 angular。这不是一个单页应用程序,我只是在几个地方使用了 Angular。我很难从 uri 获取路由参数以在我的资源中使用。
例如,假设我在页面 /users/1/posts/2 上。如何同时获得 user_id 和 id(用于帖子)?
谢谢。
您可以配置您的角度应用程序以将参数传递给您用于该页面的控制器。
我会制作一个 routes.js 文件,执行以下操作:
App.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/your-route', {
controller: 'yourNGController',
resolve: {
params: ['$route', function($route){
params = {user_id: $route.current.params.user_id}
params.merge({post_id: $route.current.params.post_id})
return params
}]
}
})
}])
然后在您的控制器中-“yourNGController”注入您在路由中解析的“参数”。这应该可以将您需要的信息输入控制器。
如果使用较新版本的 angular,您可能还需要包含 angular-route.js,因为 $routeProvider 已从核心 angular 组件中删除。
我有一个类似的问题,链接在这里:Passing Rails ID to Angular
我认为这个解决方案有点 hack,所以对更好的方法很感兴趣。
我最终只使用了 ui-routes,这让这个问题变得容易多了。