【问题标题】:Browser refresh(F5) error in ember.jsember.js 中的浏览器刷新(F5)错误
【发布时间】:2014-01-18 22:35:12
【问题描述】:

我的工作:Rails4 + Ember.js(1.0.0)。

问题:

当我 linkTo '#/posts/1' from '#/posts' 时,没关系。

但是,如果我在“#/posts/1”路由中刷新(F5),浏览器将加载“#/posts”路由,而不是我想要的“#/posts/1”。

为什么?有什么原因吗?

在 router.js.coffee 中:

App.Router.map ()->
  @resource 'posts', ()->
    @route 'new'
    @route 'edit', {path: '/:post_id'}

路线:

App.PostsEditRoute = Ember.Route.extend({
  model: (params)->
    return App.Post.find(params.post_id)
})

控制器:

App.PostsEditController = Ember.ObjectController.extend({
  actions: {
    update: ()->
      // $('button[name=update]').find('.btn-load').addClass('active')
      @get('content.transaction').commit()
  }
})

谢谢,新年快乐,

更新

@kingpin2k

DAtrs.Store = DS.Store.extend
  revision: 13,
  adapter: 'DS.RESTAdapter'

,和

gem 'ember-rails'
gem 'ember-source', '1.0.0'
gem 'handlebars_assets', '~> 0.14.1'
gem 'emblem-rails'

@史蒂夫-h

是的!理论上你是对的。

我将“编辑”更改为“发布”

我在PostIndexRoute 中使用console.log 进行了测试。 它之前没有被调用,但你的答案是@resource

谢谢!

但是刷新问题还是存在的。

而且,它产生了一个新问题。当我linkTo路线/posts/:post_id时,它不显示信息,但之前。(你的答案解释了它)

因为然后,我在浏览器中看到了控制台。它接受了“/posts.json”的请求,而不是“/posts/1.json”。为什么?

你对 ember-data 和 DS.RESTAdapter 的理解是什么。

路线:

App.PostIndexRoute = Ember.Route.extend({
  model: (params)->
    console.log '...PostIndexRoute......'
    return App.Post.find(params.post_id)
})

我确认了“/posts/1.json”并且它起作用了:

{
  "post": {
    "title": "Hello World",
    "id": 1
  }
}

对不起,谢谢!

更新-2

因为然后,我在浏览器中看到了控制台。它接受了“/posts.json”的请求,而不是“/posts/1.json”。为什么?

意思是:

当我linkTo 路由/posts/:post_id 时,它不显示信息。

但在控制台中:

...PostIndexRoute......
XHR finished loading: "/posts".

我不知道为什么它没有“/posts/1”?

当我这次刷新浏览器时,它会重定向到'/#/posts'。

【问题讨论】:

  • 请您添加其余的路线,这里没有什么会导致这种情况。
  • 对不起,我不明白这部分:“它接受了'/posts.json'的请求,而不是'/posts/1.json'。为什么?”当您看到这些请求时,您想访问哪个 URL?

标签: browser ember.js refresh


【解决方案1】:

您的路由器设置似乎是问题所在。试试:

App.Router.map ()->
  @resource 'posts', ()->
    @route 'new'
    @resource 'edit', {path: '/:post_id'}

当您{{link-to}} 时,您是直接传递模型对象,并且不会调用路由上的model: 函数。刷新时,您正在重建给定 id 的模型。为编辑路径指定 resource 将使 Ember 使用您的 PostsEditRoute

【讨论】:

    猜你喜欢
    • 2010-10-18
    • 2014-01-01
    • 2013-09-09
    • 2021-10-05
    • 2010-09-27
    • 2012-09-05
    • 2012-08-31
    • 2012-01-21
    相关资源
    最近更新 更多