Я пытаюсь создать компонент модального блока в ember. Модальная коробка имеет две стандартные кнопки: «закрыть» и «сохранить». Я хотел передать действие контроллера этому компоненту, чтобы при нажатии кнопки сохранения он вызывал действие контроллера, которое было передано. Звоню компонент, как:Объект связывания контроллера с компонентом в ember
{{#affi-modal-box title="Test title" modalId="createNewAnalyticsRunModal" controllerBinding=controller}}some message{{/affi-modal-box}}
и мой компонент:
AS.AffiModalBoxComponent = Ember.Component.extend({
attributeBindings: ['modelId','test'],
//this is the function that gets called when save button is clicked
onSaveButtonClick : function(){
console.log(this.controllerFor('analysisTemplates'));//fails
console.log(this.get('controller'));//returns modal box component which I don't need
}
});
Любые идеи, как я могу передать объект контроллера компоненту?
Спасибо.
Но если вы просто пытаетесь обновить свойство контроллера из компонента, вы просто переназначаете значение этого свойства внутри компонента, а автоматические привязки, передав свойство контроллера в компонент, позаботятся обновления, не так ли? Поэтому для простых изменений свойств контроллера вам не нужно использовать этот основной способ. Является ли это более естественным способом сделать это даже для простых изменений свойств? – ahnbizcad
@ahnbizcad, если вы собираетесь плотно связать компонент с контроллером, вы можете даже не использовать компонент. Назначение компонентов - развязка для повторного использования. Таким образом, компонент построен с действиями, которые действуют как перехватчики. И в зависимости от того, где компонент упал, эти действия могут инициировать различные действия контроллера, чтобы сделать то, что наиболее полезно в этом контексте. Это имеет смысл? – Misterparker
@intuitivepixel можно передать параметры с помощью этого решения? – murli2308