【问题标题】:ember passing new model data into componentember 将新模型数据传递到组件中
【发布时间】:2015-10-07 21:37:49
【问题描述】:

我正在尝试掌握 ember 的工作方式(可能与我的想法完全相反)。

我正在使用 ember 2.0。

我正在尝试制作的测试应用程序将在应用程序索引页面上显示一个清单组件。我想避免通过路线(在本例中为页面 url)导航用户,而只是在单个页面上为他们提供信息。

如果我只想在用户打开后获取库存数据,例如模式对话框,我如何打开组件模式并传入新数据?

我知道您可以将数据传递给像{{modal-component name=name age=age}} 这样的组件,但如果数据不是,您如何在单击后获取新数据?

谢谢

【问题讨论】:

  • 你能举个例子来说明你想做什么吗?顺便说一句,您可以通过将 App.Router.location 设置为“none”来完全隐藏浏览器地址栏中的路由。
  • 这里要问什么并不完全清楚。您的意思是在用户单击模式后发出服务器请求吗?
  • 我想了解的是在显示组件时如何“选择”模型数据。尽管 embers 被高度吹捧为“约定优于配置”,但他们在文档中几乎没有涉及约定。

标签: ember.js ember-cli


【解决方案1】:

如果你有一个模态组件,你可以在模态打开时进行数据获取。通过将 modelName 作为属性,您可以在任何需要的地方使用相同的组件。

{{modal-component modelName='directory/my-model'}}

而在

components/modal-components.js

 init: function() {
      this._super();
      this.set('someModalContainer', this.get('store').findAll(this.get('modelName'))
 }

现在这段代码在组件打开时运行,它允许您在打开组件的必要状态完成时获取数据。不在路线或任何东西的初始负载上。

components/modal-components.hbs

{{#each someModalContainer as |modalDataItem|}}
     {{modalDataItem.kickassProperty}}
 {{/each}} 

【讨论】:

  • 再次感谢!你很有帮助。
  • @RickyMason Nps!很高兴我能帮上忙。 =3
  • @RickyMason 但是,为简单起见,您也可以从模型中传递数据。如果您加载页面并有 3 个请求(不是太多,对吗?),您不妨在 route,s function -model 中进行这些服务器查询。 {{modal-component name=model.person.name age=model.person.age}}
猜你喜欢
  • 2013-05-01
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 2013-01-12
  • 2013-06-24
  • 2015-09-22
  • 1970-01-01
相关资源
最近更新 更多