问题标签 [ember-old-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.

0 投票
3 回答
13961 浏览

routing - Ember.js 路由:如何设置默认路由以立即渲染?

我相信随着我深入研究,这将变得清晰,但目前尚不清楚如何实现这一点。

我正在关注这篇关于路由的有用 SO 文章的信息,但示例中缺少一个重要部分,即如何在无需单击“主页”链接的情况下立即呈现“主页”视图?

我已经开始深入研究文档以试图理解这一点,但与此同时,为后代回答似乎是一个有用的问题。

我一直在玩上述问题中的工作 jsfiddle 示例,与我发现的其他示例进行比较,该示例似乎具有默认路由工作

到目前为止,这仍然是一个谜。

当前代码


更新:解决方案

事实证明,我正在使用的示例不起作用的原因是因为它使用Em.State.extend而不是Em.Route.extend. 有趣的是,当我一步一步地改变它们时,这个例子在我全部改变之前不起作用。

这是工作示例

0 投票
3 回答
5940 浏览

ember.js - Emberjs:路由器中的条件重定向

有没有办法在 Ember.js 路由器中进行条件重定向,而不会破坏路由器的内部一致性?

0 投票
1 回答
1878 浏览

ember.js - 使用 Ember.Route 路由到“显示”页面时出错

这个错误让我发疯。在问这里之前,我尝试了 freenode #emberjs。

我有以下路由方案:

posts显示帖子列表的路线工作正常。导航到特定帖子,例如,posts\1我在控制台中收到以下错误:

如果需要,请查看堆栈跟踪: http: //pastebin.com/eEJ2hMAV

路由器将 App.router.postController 的 content 属性设置为用户单击的帖子。在控制台中,

返回true。它试图调用addArrayObserverthis content,但 DS.Model 没有扩展 Ember.Array (其中定义了 addArrayObserver )。

另一方面,

返回true,并调用addArrayObservercontent可以正常工作。

我错过了什么?

0 投票
1 回答
3329 浏览

javascript - 如何在 Ember.Router 中设置 ApplicationController

我还有其他可能处理 Ember.Router 控制器和视图吗?我的应用程序结构通常依赖于 require.js,它负责相应的依赖项。

在我的示例中,我将 App.ApplicationController 作为主路由器控制器。

这是一个 jsfiddle:http: //jsfiddle.net/mediastuttgart/uMKGt/1/

但是有没有机会手动设置呢?我发现了这个提交消息https://github.com/emberjs/ember.js/commit/be69395f5eec4187b1df052d7386bcda45f79475我可以看到,如何手动设置控制器和查看(无论如何无法让它工作)。但找不到任何示例,例如:

编辑

我试图更详细地解释这一点。虽然我们使用 require.js 来管理或依赖关系,但我们有多个控制器负责整个应用程序中它们自己的部分。假设我们有一个时事通讯注册表单。用于此场景的控制器的结构为

当我们使用自定义函数来生成命名空间Em.Provide('App.Controller.Newsletter');时,它会在App.Controller.Newsletter. 这个对象现在作为我们整个时事通讯应用程序的控制器基础。首先,App.Controller.Newsletter.Signup = Ember.Controller.extend({});我们需要将此实例作为路由器的“ApplicationController”传递。如您所见,我们不能只使用App.ApplicationControllerEmber.Router 来实例化控制器。

0 投票
1 回答
812 浏览

routes - Ember.js:Router/Route 和 StateManager/State 有什么区别?

似乎较旧的路由使用StateManager示例和较新的示例使用Router. 有什么区别以及为什么要使用其中一个?

0 投票
1 回答
5453 浏览

javascript - Ember.js - 如何使用 Ember.Router 将集合正确绑定到视图?

我以前曾使用过Ember.StateManager,现在我正在做一些测试,然后才最终切换到Ember.Router,但我不明白如何正确绑定我的控制器中的集合中的视图数据。

我有一个非常简单的测试结构,它在导航方面Ember.Router工作得很好,但是在数据绑定方面它没有按预期工作,我承认我现在迷路了。至于我的数据,我有一个简单的 ASP.NET MVC4 Web API,它运行一个运行良好的 REST 服务(我已经用 Fiddler 进行了测试,一切都很好)。使用 EF4.* 存储在 SQL 中,没有问题。

至于客户端应用程序,在我的contacts.index路线中,我尝试将其绑定到connectOutlets(我应该以不同的方法执行此操作吗?),但我的代码似乎无法正常工作,因为我的视图从未被绑定。

我之前尝试过的,在路由connectOutlets方法中:contacts.index

1

2

我也尝试过使用该enter方法

我试图直接在视图中绑定它,例如:

这是我的代码的当前版本:

以下是相关模板:

作为测试,我还尝试content在我的控制器中手动填充集合,如下所示,但同样,当我导航到该路线时它是空的:

对,如果你能读到现在,这是我的问题:如何使用 Ember.Router 正确地将集合绑定到视图?

我已经看到了一些示例,以及 SO 中的其他问题,但我还没有看到任何对我有用的东西(请随时指出其他带有 binding的示例)

谢谢

0 投票
2 回答
16265 浏览

ember.js - 使用 Ember 进行导航的正确方法

导航侧边栏的“正确方式”(或至少是选项,如果没有单一的“Ember 方式”)是什么?我应该以某种方式查看 ContainerViews,还是应该只使用新的出口功能并将导航粘贴在我的应用程序视图中?

此外,根据 URL(我正在使用路由)在 li 上设置 .active 类的“正确方法”是什么?有什么帮手吗?

0 投票
1 回答
3601 浏览

javascript - Ember.js - CRUD 场景 - 从路由中指定视图

我之前问过一个问题,我想将驻留在控制器中的集合绑定到列表场景视图,但是,我已经向我的结构添加了详细信息编辑模板和视图,从而产生了几个额外的子路由:

root.contacts.details -> /contacts/:contact_id
root.contacts.edit -> /contacts/:contact_id/edit

在我的details场景中,我首先开始调用connectOutlets如下

这将更改浏览器导航栏中的路线,但它会加载相同的视图,然后我将.connectOutlet联系人不是联系人更改为以下

contactController正因为如此,我不得不创建contactController一个新的控制器,因为contactsControllerEmber找不到名为维护,同步可能出现的问题(编辑联系人时,我必须手动与 中的集合同步contactsController)。此外,当我导航到/#/contacts/2/edit它时会加载详细信息视图,因为我在.connectOutlet('contact'). 所以我在做什么不可能是正确的。我不想为每个场景创建控制器。我确定这不是它的做法。

我还尝试设置视图(在我的情况下App.EditContactView)而不是资源名称,connectOutlets但我得到一个错误,说我可以传递“名称或视图类但不能同时传递”,但我没有通过viewClass,而是作为connectOutlet.

我还尝试将视图或视图实例设置为路由本身,我会破坏我的 JavaScript,或者在某些情况下我会收到一条错误消息,指出“ App.EditContactView 没有方法 CharAt ”。

话又说回来,我有点失落。我在 SO 和其他地方看到过其他问题,但我发现的问题要么ember-routermanager由 Gordon Hempton 使用(这看起来不错,但我现在只对使用内置感兴趣),Ember.StateManager或者不使用 state/route全部。文档还没有对这些事情进行太多解释。

问题:处理所有 CRUD 场景的理想方法是Ember.Router什么?我希望我contactsController能够列出所有、查找一个、编辑一个、添加一个和删除一个联系人。由于命名问题,现在我有一个contactsControllerfindAll一个contactController, find, 。editremoveadd

我目前没有使用 ember-data,所以我会对没有引用 ember-data 的示例更感兴趣(我现在正在做没有任何插件的婴儿步骤)。

这是我的路由器的当前版本:

JS

相关模板

注意:如果有任何不清楚的地方,请在评论部分询问,我可以编辑更多细节

编辑:我已经将此项目添加到GitHub,即使它与我想作为学习示例公开的内容相去甚远。目标是在此基础上取得进展并在不久的将来创建一个 CRUD 模板。目前使用 MS Web API,但可能很快会添加 Rails 版本。

0 投票
2 回答
1673 浏览

ember.js - 为什么 Ember 路由器只允许导航到叶路由?

我最近使用 Ember 路由器注意到的一点是它只允许导航到叶路由——没有子路由的路由。

现在,除非我做错了事情,否则这似乎是设计中的错误/错误。

让我们以这样的例子为例:

我有一个项目集合,每个项目都有很多合作者,我想构建一个具有 3 列布局的 UI(类似于您的标准桌面电子邮件客户端),在左侧我有一个项目列表,单击时project 中间的列显示了一个协作者列表,单击协作者会将其详细信息加载到右侧列中。

现在有了我想要/projects/1在单击项目时导航到的路由,以及在/projects/1/collaborators/23单击协作者时要导航到的路由。

这是一个路由器,说明了嵌套路由的第一部分:

正如您将看到的那样,Ember 不会调用 updateRoute(设置 URL),直到root.projects.show由于这条线https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routeable .js#L81

有没有其他人做过这样的事情?有没有更好的方法来设计这个?

0 投票
1 回答
1297 浏览

ember.js - 路由器/StateManager - 无法使其工作

我一直在尝试实现本指南中指定的路由器,但我无法使其工作。任何人都可以使用最新版本的 Ember 提供一个快速代码示例来启用支持通过 url 路由的路由器吗?