【问题标题】:Ember.js view not being autoupdatedEmber.js 视图未自动更新
【发布时间】:2014-01-14 07:54:49
【问题描述】:

我被困在名为“让我们学习 Ember”的 Tuts+ 课程中创建的“美味”书签应用程序中。由于该课程已有几个月的历史,我正在尝试使用最新版本的 Ember.js 和 Ember-Data 重新制作该应用程序。

这里是回购https://github.com/jantequera/scrumptious

注意:由于@claptimes 的要求,我添加了一个项目的jsbin:http://jsbin.com/ukuDORUZ/2/edit?html,js,console

问题是,在“书签”模板中,当我添加一个新书签时,它被存储并且“创建书签”部分消失了,但书签表没有更新,甚至没有反映实时更改新创建的书签,这是预期的行为。换句话说,我必须刷新浏览器才能看到表格中的新书签,这不是 ember.js 应用程序应该工作的方式。

在学习 Ember 时,我可能错过或误解了指南中解释这一点的内容,因此欢迎提供任何帮助。下面我公开了代码,如果您希望在上下文中查看它甚至尝试一下,请使用上面的 repo。谢谢!

EDIT 下面的 Anton 指出并建议了组件的使用,这使得上面的 jsfiddle 可以工作。但是,当我在本地副本中使用此解决方案时,它不起作用除非我使用 LSAdapter(本地存储)的 FixtureAdapter INSTEAD。有什么线索吗?

【问题讨论】:

  • 控制台中有消息吗?
  • 尝试设置一个jsfiddle?
  • @claptimes:当然,给你!请注意,我使用的是夹具适配器。 jsbin.com/ukuDORUZ/2/edit?html,js,console
  • @SteveH。 :根本没有消息,但是在上面链接的 jsfiddle 上有一个在本地开发中根本不会发生的策略循环(添加书签时检查控制台消息)。

标签: javascript ember.js refresh components


【解决方案1】:

http://jsbin.com/ukuDORUZ/6

您使用“渲染”助手:

{{render "table" controller.regular}}

当您创建新书签并更新 controller.regular 时,模型不会在“表格”模板中更新

您可以使用组件 (http://emberjs.com/guides/components/) 并将您的模型绑定到组件的参数:

{{bookmarks-table elementsBinding="controller.regular"}}

http://jsbin.com/ukuDORUZ/6

【讨论】:

  • 感谢您的回答!我会赞成它,但我没有足够的声誉!但是,我不能将其标记为已接受的答案,因为尽管它在 jsfiddle 中有效,但它在我的项目本地副本中不起作用,除非我更改了 Fixture 适配器的 localstorage-adapter 用法!这很奇怪!我将编辑帖子以包含您提供的部分解决方案!
  • 保存前只需将model.favorite设置为false
  • 您的过滤器预期为真或假,但 LSAdapter 的新记录包含未定义而不是假。 model.set('最喜欢的', false);
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2022-10-28
  • 2014-11-26
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多