在ember js中将数据从控制器传递到组件

qnyhuwrf  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(117)

我有这样的情况,一个有组件,与发送一个函数到控制器和数据计算在控制器中。再次我需要发送的结果的功能组件,并做其余的计算。作为一个初学者我遇到它。这是可能的吗?
我尝试将其作为变量传递,但它得到的是一个空列表

kcrjzv8t

kcrjzv8t1#

    • 因为,你没有提供给我们你的代码,这里是AI回答你:)**

是的,可以将数据从控制器传递到Ember.js中的组件。有多种方法可以实现这一点,具体取决于您的特定用例。
一种常见的方法是使用组件的属性绑定将数据从控制器传递到组件。下面是一个例子:
1.在控制器中,定义计算属性或常规属性,用于计算要传递给组件的数据。例如:

// app/controllers/my-controller.js

import Controller from '@ember/controller';
import { computed } from '@ember/object';

export default Controller.extend({
  // Computed property that computes the data
  computedData: computed(function() {
    // Perform your computations here and return the result
    return ['result', 'of', 'computation'];
  })
});

1.在使用组件的模板中,将数据绑定到组件的属性。例如:

<!-- app/templates/my-template.hbs -->

{{my-component data=computedData}}

1.在组件中,定义一个输入属性来接收数据。例如:

// app/components/my-component.js

import Component from '@glimmer/component';

export default class MyComponentComponent extends Component {
  // Input property to receive the data
  data = null;
}

1.您现在可以在组件的模板或JavaScript中访问传递的数据。例如,在组件的模板中:

<!-- app/components/my-component.hbs -->

{{#each this.data as |item|}}
  <p>{{item}}</p>
{{/each}}

在本例中,控制器中的computedData属性是根据您的逻辑计算的。然后将其传递给模板中my-componentdata属性。该组件通过其输入属性data接收数据,并可以在其模板或JavaScript中使用它。
请确保根据您的特定要求和命名约定调整代码。

相关问题