ember.js Emberjs -在组件中使用@model挂钩数据

tzxcd3kk  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(133)

我有一个从mirage获取posts数据的路由,如下所示:

import Route from '@ember/routing/route';

export default class PostsRoute extends Route {
  async model() {
    return this.store.findAll('post');
  }
}

我就可以这样做了

{{#each @model as |post idx|}}
   ..do stuff
{{/each}}

但是,假设我想将@model重命名为foo,并在其他组件中使用它,该如何操作呢?

qxgroojn

qxgroojn1#

第一个@model是一个“魔术字符串”,总是引用this.model。您可以做的是在Controller上定义一个getter:

get foo() {
  return this.model;
}

然后,您可以在模板中将其用作{{this.foo}}
@model引用为路由模板中的其他内容的另一种方法是使用{{#let

{{#let @model as |foo|}}
  {{foo}}
{{/let}}

将数据传递给组件时,始终可以重命名该组件:

<MyComponent @foo={{@model}} />`

然后使用{{@foo}} * 内部 * components/my-component.hbs

相关问题