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
我有一个 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