AngularJS 中的 Rails 路由参数

2024-03-24

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

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

<div class='articleContainer' ng-controller='ArticleController'>
  <div class='articleTitle' ng-bind='article.title'></div>
  <div class='articleBody' ng-bind='article.body'></div>
</div>

这就是我的 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?非常感谢你。


将文章 ID 嵌入到articleContainer div 上的数据元素中,如下所示:

<div class='articleContainer' ng-controller='ArticleController' id='articleContainer' data-article-id=<% [email protected] /cdn-cgi/l/email-protection_s %> >
  <div class='articleTitle' ng-bind='article.title'></div>
  <div class='articleBody' ng-bind='article.body'></div>
</div>

我向 div 添加了一个 id,以便通过 javascript 轻松参考。

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

(假设是 jQuery)

var articleId = $('#articleContainer').data('article-id');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 中的 Rails 路由参数 的相关文章

随机推荐

  • 如何让 Pylint 识别 NumPy 成员?

    我正在 Python 项目上运行 Pylint Pylint 多次抱怨无法找到 NumPy 成员 如何避免这种情况 同时避免跳过会员资格检查 从代码来看 import numpy as np print np zeros 1 4 当运行时
  • 如果使用双斜杠设置 会发生什么?

    我喜欢了解如何使用对我的网络爬虫来说很有价值 所以我用主要浏览器测试了几种组合 最后发现了一些我不明白的带有双斜杠的东西 如果您不喜欢阅读所有内容 请跳至测试结果D and E 所有测试演示 http gutt it basehref ph
  • 在 SQL 中从数据库表中删除除前 n 之外的所有内容

    从 sql 中的表中删除所有行但保留顶部的 n 行的最佳方法是什么 DELETE FROM Table WHERE ID NOT IN SELECT TOP 10 ID FROM Table Edit Chris 带来了良好的性能提升 因为
  • 请求范围的 bean 和数据模型初始化?

    更新二 好的 我设法缩小了范围 我有一个带有数据表的页面 具有排序和过滤功能 两者都发生在数据库中 换句话说 我不使用我使用的 rich datatable 的嵌入式功能 而是让 DB 来完成工作 我与请求范围豆子 唯一的会话范围 bean
  • 如何可靠地获取 C 风格数组的大小?

    如何可靠地获取 C 风格数组的大小 经常推荐的方法似乎是使用sizeof 但它不起作用foo函数 其中x传入 include
  • std::cin 用于双精度和字符串

    我正在做货币兑换练习 程序应从输入流中读取货币的金额和名称 并以本国货币返回其值 double amount 0 0 std string currency std cout lt lt Please enter amount and cu
  • 此 Blade 卫生系统是否正常工作(双花括号与三花括号)?

    很抱歉 这很可能是我自己的误解 而不是实际存在的问题 我对 Laravel 和 Blade 模板相当陌生 我正在尝试输出从Input get 然而 当我通过双花括号和三花括号输出字段时 输出之间似乎没有区别 这是我的观点的摘录 data I
  • 如何模拟作为函数的 Angular 服务?

    我们有一个所谓的CORShttpService 这基本上是一个包装 httpservice 但是封装了一些我们需要的CORS功能 我现在正在为具有以下功能的服务编写一些测试CORShttpService注入其中 该服务的代码如下 CORSh
  • 如何在 Kotlin 中使用堆栈?

    如何在 Kotlin 中使用 Stack 来自 java 或者还有其他替代方案吗 我正在尝试将列表转换为堆栈 科特林 1 3 70介绍了kotlin collections ArrayDeque https kotlinlang org a
  • 来自 Node.js BigQuery 客户端库的更详细错误消息

    我用的是官方的与 BigQuery 的 Google Node 连接器 https github com googleapis nodejs bigquery 我有以下片段将记录流式传输到数据库中 module exports sendTo
  • 在 Angular JS 中解码 HTML 实体

    如何使用 Angular JS 解码文本中的 HTML 实体 我有字符串 quot 12 10 On Going Submission of quot quot Made Up quot quot Samples quot 我需要一种使用
  • Android Jack 编译器未从 proguard 规则中删除日志

    我尝试过使用 assumenosideeffects class android util Log public static boolean isLoggable java lang String int public static in
  • canvas ImageData 删除白色像素

    我有一些 html 图像有白色背景 我需要删除白色背景 我想我可以使所有白色像素透明 但我不知道该怎么做 我只想使用 html javascript 这是如何做到的 function white2transparent img var c
  • Spring IOC 和 Spring AOP 的区别

    有什么区别春季国际奥委会 and 春季AOP以及它们的重要性 您在网上搜索过 IoC 和 AOP 吗 有一个lot对两者的引用 简而言之 IoC 允许外部力量来决定代码将使用什么实现 而不是由代码决定实现 外力 可能是配置文件 单元测试 其
  • 为什么从 Unicode 字符集中删除了 U+D800 到 U+DFFF 范围内的代码点?

    我正在学习UTF 16编码 并且我读到如果你想表示U 10000到U 10FFFF范围内的代码点 那么你必须使用代理对 其范围在U D800至 U DFFF 假设我想对以下代码点进行编码 U 10123 二进制为 1000000010010
  • Python 中的随机数生成方法有何不同?

    生成随机数int在 Python 中 0 到 10 之间 我可以执行以下任意操作 import numpy as np print np random randint 0 10 or import random print random r
  • Google 关于推送通知的回应

    我正在创建一个用于 Google 日历集成的应用程序 当任何人手动更改 Google 日历事件时 我试图从 Google 获取通知 因此 我们在 Google 和我的应用程序之间创建了一个通道 现在的问题是 当 google 将响应标头发送
  • 如何编写通用方法来查找最大元素并调用该方法?

    当我试图解决运动问题时来自泛型教程问答 http docs oracle com javase tutorial java generics QandE generics answers html我的答案略有不同 我的回答 public s
  • 完成调试/编码后,如何处理 print()

    致Python专家 我使用了很多 print 来检查变量的值 完成后 我需要删除 print 它非常耗时并且容易出现人为错误 想了解一下你们如何处理 print 是编码时删除还是最后删除 或者有一种方法可以自动删除它或者您不使用 print
  • AngularJS 中的 Rails 路由参数

    我正在尝试构建一个不使用 ngView 的 AngularJS Rails 多页面应用程序 基本上 我想在我的 Rails 应用程序中使用 Angular 的数据绑定和其他功能 同时仍然拥有由我的 Rails 路由确定的视图 到目前为止 它