问题标签 [ember-router]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何在 ember.js 中消除嵌套路由的歧义?
我有两个资源都具有相同的子资源:
问题是 ember 路由器仅根据当前和父路由而不是整个层次结构来构建路由对象的名称。因此,它会尝试同时路由/posts/:id/comments/new
和路由/products/:id/comments/new
到App.NewCommentRoute
对象。我能做些什么来解决这个问题?
这篇文章改编自GitHub 问题。
ember.js - 使用 Ember.js 的 Hashbang URL
我正在尝试设置我Router
使用“hashbang”网址(#!
)。
我试过这个,但显然它不起作用:
这可以在 Ember 中完成吗?
javascript - 我应该如何重定向到带有 ember 中的对象的路径?
我正在尝试在 Ember.js 中组合一个数据驱动的菜单系统。这是javascript js/nodal.js
,:
这是 HTML,例如:
我想要的是用户一/menu/root
打开页面就被重定向到。到目前为止,我还没有找到正确的咒语来完成这项工作。当我加载上述内容时,我得到了这个异常:
如果我直接加载index.html#/menu/root
,它可以工作 - 只有重定向不起作用。this.transitionTo
将 IndexRoute 定义中的行替换为:
确实重定向,但它重定向到/menu/undefined
,而不是/menu/root
。这很丑陋,而且显然坏了。
我错过了什么?
编辑
按照建议,我尝试添加一个 ArrayController:
这给了我一个新的错误:
ember.js - New Router API 中的路由和资源有什么区别?
我试图了解 aRoute
和 a之间的区别Resource
。我理解的方式Resource
有助于将一个Route
对象的子路径设置为另一个Route
对象。但是当我想到路径也发生默认名称映射时,它还不清楚。
ember.js - 我怎样才能得到我以前的路线?
如何在当前控制器中获取以前的路由器。
ember.js - 在 ember.js 中定义多分段捕获所有路由
我正在使用 Ember.js,如果用户导航到与资源不匹配的 URL,我想创建一个捕获所有路由以将用户发送回应用程序的根目录。(我正在使用历史 API)我已经这样实现了:
我的问题是:无论路径中的段数如何,我是否可以定义一个匹配任何尚未解析为资源的路径的全部路径?
我正在使用 Ember.VERSION :1.0.0-rc.1
ember.js - 断言失败:指定了出口(菜单),但此视图将在根级别呈现
当我在我的应用程序的根级别上渲染一个额外的出口时,我遇到了这个奇怪的断言错误。
这是我使用的代码:
我有一个名为menu
. 这是我的 App.ApplicationRout
但它抛出一个错误:assertion failed: An outlet (menu) was specified but this view will render at the root level
ember.js - 用 ember 显示崩溃路径
我想用 Ember 显示一个崩溃的路径。如何遍历当前路径?
在我看来,有两种方法:
余烬之路
编辑:见下面我的回答
我使这个问题与显示面包屑的当前状态保持同步。您可以浏览此问题的修订版本以查看历史记录。
这里有几个目标:
- 监听路由变化
- 寻找当前路线
- 显示当前路线列表
- 显示路线中步骤的工作链接
控制器
路由器
模板
目前要解决的问题是:
- 当我转到 URL 时:
#/websites/8/pages/1
面包屑的输出是:(我删除了所有脚本标签占位符
- URL 应该是有效的路由
- 菜单现在被硬编码
{{#linkTo}}
到路由中,我试图让它动态化,就像这里一样,但transitionTo
不会触发currentPath
-observer
另一种方法
大多数与上述相同,但有一些不同之处。面包屑是通过循环location.hash
而不是从路由器获取的。
ApplicationController变为:
我们需要在ApplicationRoute中订阅自定义处理程序
到目前为止,替代方法对我来说效果最好,但这不是一个好方法,因为当您将路由器配置为使用history
而不是location.hash
这种方法时,它将不再起作用。
ember.js - 如果未登录,则禁止某些(大多数)路线
我将 Ember 用于我的整个网站,甚至是静态页面。
我有一个设计 api 设置,使用 user.new、user.login 和 user.edit 来创建、登录或编辑现有帐户。
任何用户都可以去
查看编辑屏幕。我真的希望只有在用户登录时才可以做到这一点。如果没有,该路由应该例如重定向到登录页面。
有没有办法做到这一点?
ember.js - 在浏览器后退按钮单击时,嵌套路由渲染到相同的模板/插座中断
我有一个嵌套的路由层次结构,我的应用程序需要它来跟踪用户模型选择。我正在尝试使用主应用程序模板并将每个路由呈现到该模板上的单个插座中。这在我从父级到子级遍历路由层次结构时起作用。
但是,一旦您单击浏览器后退按钮以返回路由层次结构,父路由 renderTemplate 挂钩就不会触发。这会导致孩子从插座上脱钩,并且没有任何东西返回到插座中。
这是一个例子:
使用模板:
这是一个带有这段代码的jsfiddle。单击链接以遍历路线,然后单击浏览器后退按钮,应用程序模板被渲染,没有任何东西连接到它的出口。
有没有办法强制重新渲染,或者我是不是走错了路?