2
考虑其使用Semantic UI以下灰烬成分:组件如何从父组件同步获取值?
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['ui', 'mini', 'modal'],
didInsertElement() {
this.$().modal({
onApprove:() => {
let promise = // obtain promise from parent... somehow
promise.then(() => {
this.$().modal('hide');
});
return false;
}
});
}
});
模态对话框只要元件是可访问的初始化。 onApprove
选项指定当用户在对话框中单击“确定”时要调用的回调。该组件的父级提供了一个Ember.RSVP.Promise
,解决时关闭该对话框。
这里就是问题—我该如何获得父母的承诺?我考虑了以下可能性:
母公司可以提供一个动作被调用:
{{modal-dialog action='getPromise'}}
然而,行动不能返回值,因此虽然该部件可调用的动作,它不能使用它获得承诺。
母公司可以提供承诺的绑定属性:
{{modal-dialog promise=promise}}
这种方法的问题是
didInsertElement()
无法获得承诺本身,因为组件必须等待promise
属性变异。
有没有办法让组件以同步的方式向父组索要值?
你是什么意思“获得来自母公司的承诺”是什么意思? –
@ Roamer-1888父母创建承诺,以响应模型的OK按钮被单击,然后组件需要访问承诺以便在承诺解决时自动关闭。 –