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');
- 请求的资源上不存在“Access-Control-Allow-Origin”标头
- 我们如何以干燥的方式使用带有angularjs的rails路由?
- 使用rails和angularjs更新深层嵌套模型
- Rails将使用angular.js对gem进行拼写以进行分页
- 如何在AngularJS的Rails 4中修正设置根路由?
- 使用带有Rails carrierwave gem的ng-file-upload上传多个文件
- 如何使用angularjs和ui路由器从rails获取实例变量?
- 这对于sinatra + angular.js +自定义提供程序的Oauth2工作流的概念是否正确?
- Rails 4 Asset Pipeline:来自js的asset_path中的资产缺失指纹