Ember.js:使用其路由将 url 字符串获取到模型实例

Ember.js: Get url string to a model instance using its route

我有一个 Book 模型实例,并希望在给定路由的情况下为它获取一个 href 字符串。例如:

someEmberJSMethod('book.edit', aBookInstance) #=> "/books/12/edit"

给定路线:

@resource "books", ->
    @route "edit", path: "/:book_id/edit"

我尝试查看 Ember.js 源代码以及 link-to 帮助程序如何在给定路由名称和实例的情况下生成 href,但未能找到答案。

您可以通过访问路由器生成路由same way the link view does

App.Router.router.generate('book.edit', aBookInstance) # => '/books/12/edit'

您没有提供应用程序的上下文或此请求发生的位置。例如,如果您使用的是 Ember CLI,并且这是在控制器中,则您必须使用如下内容查找路由器:

@get('container').lookup('router:main')

虽然这没有回答问题,但有些人可能会觉得它有用。从控制器获取对象的简单 show url 的方法如下:

adapter = this.store.adapterFor('application')
adapter.buildURL('book', @get('id')) // => '/books/12