问题标签 [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.
routing - Ember.js 路由:如何设置默认路由以立即渲染?
我相信随着我深入研究,这将变得清晰,但目前尚不清楚如何实现这一点。
我正在关注这篇关于路由的有用 SO 文章的信息,但示例中缺少一个重要部分,即如何在无需单击“主页”链接的情况下立即呈现“主页”视图?
我已经开始深入研究文档以试图理解这一点,但与此同时,为后代回答似乎是一个有用的问题。
我一直在玩上述问题中的工作 jsfiddle 示例,并与我发现的其他示例进行比较,该示例似乎具有默认路由工作
到目前为止,这仍然是一个谜。
当前代码:
更新:解决方案
事实证明,我正在使用的示例不起作用的原因是因为它使用Em.State.extend
而不是Em.Route.extend
. 有趣的是,当我一步一步地改变它们时,这个例子在我全部改变之前不起作用。
这是工作示例:
ember.js - Emberjs:路由器中的条件重定向
有没有办法在 Ember.js 路由器中进行条件重定向,而不会破坏路由器的内部一致性?
ember.js - 使用 Ember.Route 路由到“显示”页面时出错
这个错误让我发疯。在问这里之前,我尝试了 freenode #emberjs。
我有以下路由方案:
posts
显示帖子列表的路线工作正常。导航到特定帖子,例如,posts\1
我在控制台中收到以下错误:
如果需要,请查看堆栈跟踪: http: //pastebin.com/eEJ2hMAV
路由器将 App.router.postController 的 content 属性设置为用户单击的帖子。在控制台中,
返回true
。它试图调用addArrayObserver
this content
,但 DS.Model 没有扩展 Ember.Array (其中定义了 addArrayObserver )。
另一方面,
返回true
,并调用addArrayObserver
它content
可以正常工作。
我错过了什么?
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.ApplicationController
Ember.Router 来实例化控制器。
routes - Ember.js:Router/Route 和 StateManager/State 有什么区别?
似乎较旧的路由使用StateManager
示例和较新的示例使用Router
. 有什么区别以及为什么要使用其中一个?
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的示例)
谢谢
ember.js - 使用 Ember 进行导航的正确方法
导航侧边栏的“正确方式”(或至少是选项,如果没有单一的“Ember 方式”)是什么?我应该以某种方式查看 ContainerViews,还是应该只使用新的出口功能并将导航粘贴在我的应用程序视图中?
此外,根据 URL(我正在使用路由)在 li 上设置 .active 类的“正确方法”是什么?有什么帮手吗?
javascript - Ember.js - CRUD 场景 - 从路由中指定视图
我之前问过一个问题,我想将驻留在控制器中的集合绑定到列表场景视图,但是,我已经向我的结构添加了详细信息并编辑模板和视图,从而产生了几个额外的子路由:
root.contacts.details -> /contacts/:contact_id
root.contacts.edit -> /contacts/:contact_id/edit
在我的details
场景中,我首先开始调用connectOutlets
如下
这将更改浏览器导航栏中的路线,但它会加载相同的视图,然后我将.connectOutlet
联系人而不是联系人更改为以下
contactController
正因为如此,我不得不创建contactController
一个新的控制器,因为contactsController
Ember找不到名为维护,同步可能出现的问题(编辑联系人时,我必须手动与 中的集合同步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
能够列出所有、查找一个、编辑一个、添加一个和删除一个联系人。由于命名问题,现在我有一个contactsController
和findAll
一个contactController
, find
, 。edit
remove
add
我目前没有使用 ember-data,所以我会对没有引用 ember-data 的示例更感兴趣(我现在正在做没有任何插件的婴儿步骤)。
这是我的路由器的当前版本:
JS
相关模板
注意:如果有任何不清楚的地方,请在评论部分询问,我可以编辑更多细节
编辑:我已经将此项目添加到GitHub,即使它与我想作为学习示例公开的内容相去甚远。目标是在此基础上取得进展并在不久的将来创建一个 CRUD 模板。目前使用 MS Web API,但可能很快会添加 Rails 版本。
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
有没有其他人做过这样的事情?有没有更好的方法来设计这个?
ember.js - 路由器/StateManager - 无法使其工作
我一直在尝试实现本指南中指定的路由器,但我无法使其工作。任何人都可以使用最新版本的 Ember 提供一个快速代码示例来启用支持通过 url 路由的路由器吗?