在 EmberJS 中获取父路由

2024-05-10

我正在制作一个可重用(有点多态)的评论小部件。我想要一个按钮,使我能够返回到父路由(例如,如果我位于 /blog_posts/1/comments,我希望该按钮将我带回 /blog_posts/1)。

我目前正在使用transitionToRoute('blog_post'),但这从长远来看是行不通的,因为我希望此代码通常可以与任何模型一起运行(即它不知道有关路线名称的任何信息,因此我无法调用“blog_post”)。我想我正在寻找类似 Rails 的东西url_for,或者一种说法router.get('parent_route') (or controller.get('parent_route')).

有什么指示或想法吗?谢谢。


这个问题在 2013 年的 ember v0.9.8 或其他版本中得到了回答,从那时起该框架已经取得了长足的进步。我认为当前版本的框架可能有更好的解决方案。因为,我与 Ember 没有联系,所以无法真正更新这个答案!

受源代码中私有函数的启发,将以下方法添加到返回路由名称的路由中parentRoute

Ember.Route.reopen({
  getParentRoute: function(){
    var route = this;
    var handlerInfos = route.router.router.currentHandlerInfos;
    var parent, current;

    for (var i=0, l=handlerInfos.length; i<l; i++) {
      current = handlerInfos[i].handler;
      if((current.routeName == route.routeName)||(current.routeName.match(/./) && current.routeName.split('.')[1] == route.routeName )){
        return parent.routeName;
      }
      parent = current;
    }
  }
})

使用内部路由如下

App.SomeRoute = Ember.Route.extend({
  events: {
    goBack: function(){
      this.transitionTo(this.getParentRoute());
    }
  }
})

车把

<script type="text/x-handlebars" data-template-name="some">
  <a href="#" {{action goBack}}>Back</a>
</script>

实际代码请打开this https://raw.github.com/emberjs/ember.js/release-builds/ember-1.0.0-rc.2.js并执行 CTRL+F function parentRoute

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

在 EmberJS 中获取父路由 的相关文章

  • 目标的事件委托

    在下面的代码中 我的click事件代表和所有三个 click 我的视图层次结构中的处理程序被解雇 不过我也想火 edit 在我的整个视图层次结构中 edit 只是我的元素的目标 child view Template
  • 防止回车键触发按钮

    我有一个搜索输入框 当用户按下 Enter 时不需要执行任何操作 我正在使用 EmberJS 和 Jquery 以及以下代码 目前 它可以禁止触发弹出窗口 但由于某些原因 在 IE9 中 当按下 Enter 键时 切换按钮将成为焦点 在 C
  • Ember 路由、控制器、视图

    我已阅读 Ember js 网站上的大部分初学者指南 但我仍然对放置内容的正确位置感到困惑 Route 根据在线研究 人们建议将与路由相关的逻辑放入路由中 一切都很好 但我唯一能想到的是this transisionTo 我在其他地方读到所
  • 从“编辑”导航回“显示”后,URL 包含“未定义”而不是 id

    我读了Ember 应用程序结构 http emberjs com guides outlets指南 现在我尝试使用 ember js 创建一个简单的单页应用程序 我的主页显示了一个包含 Post 对象列表的侧边栏 当我单击列表项时 在侧边栏
  • 在 Ember.js 中,为什么绑定到数组在 {{#each}} 之外不起作用?

    在下面的代码中 我渲染了 3 个视图 第二个和第三个视图渲染App controller a 单击第一个视图会发生变化App controller a 单击时 第三个视图会更新其内容 第二个视图不更新其内容 为什么 我认为第二个视图绑定到数
  • Ember:断言失败:EmberObject.create 不再支持定义计算属性

    我使用的是 Ember 2 16 版本 我们升级到了 3 8 版本升级后 我看到此错误 但无法弄清楚错误来自何处 在什么情况下我会收到此错误 我看到其中一篇帖子 Ember JS 中的动态计算属性已弃用 https stackoverflo
  • Ember.js 输入字段

    是否可以在 Ember js 视图中使用标准 HTML5 输入字段 或者您是否被迫使用 Ember TextField Ember CheckBox Ember TextArea 和 Ember select 等内置字段的有限选择 我似乎无
  • Ember.js 动态子视图

    我无法让 ember 渲染动态子视图 似乎一旦渲染了子视图 绑定就会丢失 这是一个jsfiddle http jsfiddle net zaius XYzfa http jsfiddle net zaius XYzfa 当您在两个编辑器页面
  • Ember 模型中的自定义请求 url

    我正在尝试将 Ember 数据与已构建的 REST api 一起使用 它适用于顶级路由 例如我在 api 端有课程路由 如下所示 app get courses app controllers courses findAll app get
  • 如何将子记录添加到现有父记录中?

    我一直在 Google 和 Stack Overflow 上搜索有关这个主题的某种提示 但信息充其量是分散的 我正在尝试创建一个新的子记录 Comment 并将其保存到现有的父记录 Post 我使用的是 Ember Model 而不是 Em
  • emberjs 无法克隆未实现 Ember.Copyable 的 Ember.Object

    我正在使用 ember 1 3 1 和 ember data 1 0 0 beta 5 在创建新模式时我收到 以下错误 断言失败 无法克隆未实现 Ember Copyable 的 Ember Object 以下是我的模型代码 App myM
  • Ember:如何使用 i18n lib 翻译占位符?

    See http jsfiddle net cyclomarc 36VS3 1 http jsfiddle net cyclomarc 36VS3 1 我正在使用 Ember i18n lib 进行翻译 如何在 Ember TextFiel
  • 在 #each 内渲染视图

    每当我尝试在 each 块内渲染视图时 我都会收到一条 PrecompilationError 消息 Compiler said Error each doesn t match view Example each posts view A
  • 在哪里放置固定装置?

    我应该在使用 ember cli 生成的 Ember JS 应用程序中的哪里定义固定装置 我尝试过很多地方 例如app js并在一个名为 fixtures 的文件夹中 经过一番挖掘后我发现改变Ember MODEL FACTORY INJE
  • Emberjs 将多个控制器加载到一个控制器中

    SCENARIO我目前有一个IndexRoute 我想将另外 3 个控制器加载到其中 另外 3 个控制器称为Sports News Business 我阅读了 embersjs 文档 它指出您需要实现renderTemplate钩入Inde
  • 如何在 ember.js 路由中显示模型的非 id 字段的字符串值?

    我有一个自定义字段 允许您过滤模型列表 在某些 ArrayController 上 PersonApp SearchField Ember TextField extend keyUp function e var search this
  • EMBER直接路由URL访问不加载数据

    当我直接从浏览器访问我的网址时遇到问题 它不会加载我的单一帖子信息 示例 index html posts 10052308 但当我访问 index html posts 然后单击我的一篇文章时 它会起作用 我的网址会更改为 index h
  • Emberjs不会加载jquery/javascript,在页面中插入html时运行代码

    Help 我正在开发一个丰富的 emberjs yeoman 项目 该项目使用多个 hbs 模板 这些模板都可以从一个 application hbs 的侧边栏路由到 问题是当我加载页面时 有时使侧边栏折叠的 Jquery 不起作用 而同一
  • 如何使用新路由器重新渲染应用程序模板?

    The code 我正在使用的版本4fcdbf2560 https github com emberjs ember js tree 4fcdbf256039e8ca8d2647050e0c9a71234c922c与新路由器 在我的应用程序
  • 加载 Ember.View 的内容后初始化 jQuery 插件

    DEBUG Ember VERSION 1 0 0 rc 6 ember js DEBUG Handlebars VERSION 1 0 0 rc 4 ember js DEBUG jQuery VERSION 1 9 1 控制器是一个Em

随机推荐

  • 在网页中编辑Word文档

    我意识到这个问题以前已经被问过很多次了 但现在很多都已经老了 没有答案 我需要用户能够从我的网页编辑Word文档 是否有任何编辑器或组件可以让我执行此操作 一些背景知识 用户将能够将 Word 文档上传到我的网站 然后从那里查看 编辑它 用
  • 您能让 Tomcat 6 stdout.log 文件表现得像 log4j DailyRollingFileAppender 吗?

    我们使用的是 Tomcat 6 的 Windows 安装 默认情况下 我们应用程序的 log4j 输出将转到 catalina base logs stdout log 文件 该日志文件仅在我们重新启动 Tomcat 时滚动 并且文件名始终
  • 从 Makefile 中的 C++FLAGS 中删除一个标志?

    我有一个 Makefile 其中包含另一个设置了很多默认值的 makefile 我无法编辑包含的 makefile 并且我想更改 makefile 中 C FLAGS 的值 即使它是在包含的 makefile 中设置的 具体来说 每当 de
  • 使用 ## 和 __LINE__ 创建 C 宏(与定位宏的标记串联)

    我想创建一个 C 宏来创建一个基于名称的函数 在行号上 我想我可以做类似的事情 真正的函数在大括号内有语句 define UNIQUE static void Unique LINE void 我希望能扩展到类似的内容 static voi
  • Flyway无序迁移

    想象一下我有以下飞行路线迁移 V1 create table sql V2 create table sql V4 create table sql 这些迁移已经应用到我的数据库中 是否可以添加以下脚本 V3 create table sq
  • 基于 True/False 值的 Python 优雅赋值

    我想根据三个布尔值中的值设置一个变量 最直接的方法是 if 语句后跟一系列 elif if a and b and c name first elif a and b and not c name second elif a and not
  • 为什么有人将(Apache mod_expires 参数)ExpiresByType 设置为“访问加 0 秒”?

    在审查答案时这个帖子 https stackoverflow com questions 9933012 how to use mod headers and mod expires to cache 我不明白为什么这里使用 0 秒作为最佳
  • UIWebView stringByEvaluatingJavaScriptFromString 在后台

    在 iOS 应用程序中 我正在运行一个相当大的脚本UIWebView using stringByEvaluatingJavaScriptFromString 就 JavaScript 字符串的长度而言较大 调用 JavaScript 后会
  • 如何查看Android Asset资源?

    我想检查 assets 文件夹中是否存在文件 我怎样才能做到呢 请帮忙 我向我的应用程序类之一添加了一个辅助方法 我假设 应用程序运行时 资产列表不会更改 the List
  • 编辑模板身份验证 Firebase

    您好 我使用 Firebase 启动了一个新应用程序 然后执行身份验证方法 但我需要编辑电子邮件地址验证和更改电子邮件地址的模板 这两个选项无法编辑 但重置密码后可以编辑模板 字段 消息 该消息仅在选项 电子邮件地址验证和更改电子邮件地址
  • ruby on Rails id 不保存

    我知道这违反了 ruby on Rails 约定 但我的这个表的 id 不需要自动递增 我是通过逻辑设置它的 但是 它不会保存到数据库 保存的所有内容都将保存为 id 的空值 def self up create table probes
  • android:widgetLayout 和 android:layout 之间的区别?

    我得到一些奇怪的配置 其中 widgetLayout 配置列表项的内部空间 而布局配置整个项目列表和屏幕背景 有人能真正解释一下什么是 widgetLayout 吗 android layout 整个首选项的布局 包括标题 摘要和小部件 a
  • 如何创建到任何 fancybox 框的直接链接

    我需要当我单击任何使用 fancybox 的内容时 它会生成一个特定的 URL 因此当我将此链接发送给某人时 它会打开我想要的特定框 例如 fancybox net home当我点击第一张图片时 链接仍然存在fancybox net hom
  • Laravel 中如何返回数组而不是集合?

    在 Laravel 中 可以仅选择一个字段并将其作为集合 数组返回 例如考虑模型Foo链接到表foos其中有字段id a b c 考虑以下示例数据 1 10 15 20 1 12 15 27 1 17 15 27 1 25 16 29 1
  • X11剪贴板如何处理多种数据格式?

    这可能也发生在您身上 有时 当您将某个网页中的文本复制到您最喜欢的网络邮件客户端中的富文本电子邮件草稿中时 您不喜欢粘贴的内容piece有不同的字体 大小 粗细 它以某种方式记住样式 通常是图像 当选择时 如果您将相同的内容粘贴到您最喜欢的
  • 获取MySql中重复行的列表

    我有一张这样的桌子 ID nachname vorname 1 john doe 2 john doe 3 jim doe 4 Michael Knight 我需要一个查询 该查询将从具有相同 nachname 和 vorname 的记录
  • 什么是标准 unicode 字体?

    以下操作系统的标准 unicode 字体是什么 视窗XP 视窗Vista Window 7 按照标准 我的意思是它们存在于操作系统的全新安装中 无需将它们作为附加包安装 我一直在寻找同样的东西 看起来所有 Win 操作系统中只有一种字体 L
  • WebView2 在没有 WebView2 运行时的情况下工作

    我们尝试在没有 WebView2 运行时的情况下使用 WebView2 因为它的大小为 100 MB 并将其分发给客户端 它在 2 台 PC 上进行了测试 两者都有相同版本的 Edge 在 PC1 上 如果没有 WV2 运行时 WebVie
  • 低级挂钩/SetWindowsHookEx lParam 自动重复?

    在这里阅读 Windows PC 上如何实现键盘自动重复 https stackoverflow com questions 876852 how is keyboard auto repeat implemented on a windo
  • 在 EmberJS 中获取父路由

    我正在制作一个可重用 有点多态 的评论小部件 我想要一个按钮 使我能够返回到父路由 例如 如果我位于 blog posts 1 comments 我希望该按钮将我带回 blog posts 1 我目前正在使用transitionToRout