我在路由器中有一个对象路由(使用带有标准 REST 后端的 ember-data),connectOutlets
它简单地反序列化并加载对象并将其插入插座。
# inside router
action: Ember.Route.extend
route: 'object/:object_id'
connectOutlets: (router, object) ->
unless object.get('isLoaded') # What goes here to tell if the object wasn't found?
#
# handle this case (e.g., redirect)
#
else # otherwise proceed as normal
router.get('applicationController').connectOutlet('object', object)
当我导航到localhost/#object/object_that_doesnt_exist
时,路由器会反序列化 url,尝试加载对象(服务器日志显示对 localhost/objects/object_that_doesnt_exist 的 HTTP GET 请求),获得 404,而是创建一个 id 设置为 的新对象object_that_doesnt_exist
。
我想检测到这一点并处理此案。现在,我正在检查isLoaded
属性,它确实区分了现有模型和不存在的模型,但我不确定这是最好的方法。
理想情况下,会有一种类似于 Rails 的方法new_record?
。