// 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'];
})
});
// 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}}
1条答案
按热度按时间kcrjzv8t1#
是的,可以将数据从控制器传递到Ember.js中的组件。有多种方法可以实现这一点,具体取决于您的特定用例。
一种常见的方法是使用组件的属性绑定将数据从控制器传递到组件。下面是一个例子:
1.在控制器中,定义计算属性或常规属性,用于计算要传递给组件的数据。例如:
1.在使用组件的模板中,将数据绑定到组件的属性。例如:
1.在组件中,定义一个输入属性来接收数据。例如:
1.您现在可以在组件的模板或JavaScript中访问传递的数据。例如,在组件的模板中:
在本例中,控制器中的
computedData
属性是根据您的逻辑计算的。然后将其传递给模板中my-component
的data
属性。该组件通过其输入属性data
接收数据,并可以在其模板或JavaScript中使用它。请确保根据您的特定要求和命名约定调整代码。