In meiner Ember-App habe ich eine Eigenschaft, die ich innerhalb der init()
-Methode einer übergeordneten Komponente erstelle. Ich möchte das an Kinder weitergeben.Ember Pass-Eigenschaft, die in der übergeordneten Komponente zu untergeordneten Komponenten erstellt wird
// app/component/parent.js
import Ember from 'ember';
import ParentProperty from 'somewhere';
export default Ember.Component.extend({
init() {
this._super(...arguments);
let model = this.get('model');
let moreData = this.get('moreData');
this.parentProperty = new ParentProperty(model, moreData);
}
click(e) {
this.get('moreData').doSomthing();
}
});
// app/component/application.hbs
{{#parent model=model moreData=moreData}}
// Here, I want to pass the `parentProperty` created
// in the init of the parent component.
{{child parentProperty=parent.parentProperty}}
{{/parent}}
Ich weiß, dass ich den {{with}}
Helfer ein ParentProperty erstellen können, wickeln Sie das Eltern und Kind, und übergeben es an beide nach unten, aber das ist nicht das, was ich tun möchte. Ist das möglich?
Diese Vorlage ist Ihre Routenvorlage, nicht Ihre Elternkomponente Vorlage, richtig? Und Sie können nicht von außen auf eine Eigenschaft einer Komponente zugreifen. Sie können es jedoch an den 'yield'-Helfer übergeben, um es anzuzeigen. – Lux
Richtig, das ist die Routenvorlage. Ich habe die Frage bearbeitet. Wie würde ich es vom Yield-Helfer aussetzen? – CookieMonster