在 Ember.js 中,将数据从控制器传递到模型可以通过以下几种方式实现:
model
方法来返回模型数据。该方法会在路由加载对应的模板时自动调用,并将返回的数据传递给模板进行渲染。例如:import Controller from '@ember/controller';
export default class MyController extends Controller {
model() {
return {
// 模型数据
};
}
}
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class MyController extends Controller {
@service myService;
model() {
return this.myService.getModelData();
}
}
@tracked
装饰器将参数保存为组件的属性,并在需要时将其传递给模型。例如:// my-component.js
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
export default class MyComponent extends Component {
@tracked data;
constructor() {
super(...arguments);
this.data = this.args.data;
}
}
// my-controller.hbs
<MyComponent @data={{this.modelData}} />
// my-controller.js
import Controller from '@ember/controller';
export default class MyController extends Controller {
get modelData() {
return {
// 模型数据
};
}
}
以上是在 Ember.js 中将数据从控制器传递到模型的几种常见方式。根据具体的业务需求和项目结构,选择适合的方式来实现数据传递。对于更复杂的数据传递需求,还可以结合使用路由参数、动态链接(Dynamic Links)等技术来实现。
领取专属 10元无门槛券
手把手带您无忧上云