Rails在AngularJS中路由参数

我正在尝试构建一个AngularJS / Rails多页面应用程序而不使用ngView-基本上,我想在我的rails应用程序中使用Angular的数据绑定和其他function,同时仍然拥有由我的Rails路由确定的视图。 到目前为止,它工作正常,但我的主要问题是从我的Angular框架中访问我的rails路由参数。 有没有办法以Angular友好的方式访问URL /参数? 我不想诉诸于window.location。

例如,假设我在localhost:3000 / articles / 1,我的视图将对应app / views / article / show.html.erb

这就是我的ArticleController在传统的Angular设置中的样子。

 var ArticlesControllers = angular.module('ArticlesControllers', ['ngSanitize']); ArticlesControllers.controller('ArticleController', ['$scope', '$routeParams',"$http","$browser","$sniffer","$rootElement", "$location", function($scope, $location, $http, $resource){ $http.get('/articles/'+$routeParams.articleId+'.json').success(function(data) { $scope.article = data["article"]; $scope.comments = data["comments"]; }); } ]); 

不幸的是,如果我不使用ngView,$ routeParams似乎不起作用。 是否有一种干净的方法来重新创建$ routeParams.articleId而不诉诸window.location? 非常感谢你。

将article id嵌入到articleContainer div的数据元素中,如下所示:

 
>

我在div中添加了一个id,以便通过javascript轻松引用。

然后,在您的javascript中,在需要时检索该数据元素:

(假设jQuery)

 var articleId = $('#articleContainer').data('article-id');