如何将数据从路由发送到组件?

san*_*hod 2 ember.js ember-data ember-cli

我是初学者.

我想将数据从路由发送到组件.

import Ember from 'ember';
var model = null;
export default Ember.Route.extend({
    model() {
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

我已经在路线中定义了这个模型,现在我想在组件js文件中使用这个模型.我只是做控制台日志,但它给出了undefined.我的组件js代码如下

import Ember from 'ember';
export default Ember.Component.extend({
    didInsertElement() {
        console.log(model);
    }
});
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以建议在组件中使用路由数据的实际方法是什么.

Emb*_*eak 5

您只需返回将其传递给模板所需的数据,

import Ember from 'ember';
export default Ember.Route.extend({
    model() {
        //here return model data which requires to display template
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

您可以访问的内部模板正在使用model,在这种情况下,您只是发送了true,因此您的model意愿包含true.

您需要将此模型传递给组件,以便可以从组件访问它.在template.hbs里面,

{{my-component model=model }}
Run Code Online (Sandbox Code Playgroud)

您可以访问组件中的模型属性,

import Ember from 'ember';
export default Ember.Component.extend({
    didInsertElement() {
        console.log('Model ',this.get('model'));
    }
});
Run Code Online (Sandbox Code Playgroud)

欢迎来到Ember.我强烈鼓励你阅读余烬指南并玩弄余烬