Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember 2.10.x通过操作(Popover)将elemendId从子组件传递到父组件_Javascript_Ember.js_Popup - Fatal编程技术网

Javascript Ember 2.10.x通过操作(Popover)将elemendId从子组件传递到父组件

Javascript Ember 2.10.x通过操作(Popover)将elemendId从子组件传递到父组件,javascript,ember.js,popup,Javascript,Ember.js,Popup,给定以下代码: {{#my-popover tagName="i" title="Wirklich löschen?" classNames="fa fa-times red-text"}} <button class="btn btn-warning" {{action 'removeRecord'}}>Delete it!</button> {{/my-popover}} 在删除父组件操作中的记录后,我需要从组件my popover中生成的elemendId来关闭

给定以下代码:

{{#my-popover tagName="i" title="Wirklich löschen?" classNames="fa fa-times red-text"}}
<button  class="btn btn-warning" {{action 'removeRecord'}}>Delete it!</button>
{{/my-popover}}

在删除父组件操作中的记录后,我需要从组件my popover中生成的elemendId来关闭popover。

将生成的elemendId作为my-popover.js文件的sendAction方法中的第二个参数传递。 例如:

import Ember from 'ember';
export default Ember.Component.extend({
  actions: {
    doSomething(){
        this.sendAction("doSomething", this.get('elemendId'));
    }
  }
});
您需要从我的popover组件到父组件生成elementId

为你创造的

my-popover.hbs:我正在向调用者提供elementId属性

{{yield elementId}}
application.hbs:从我的popover组件获取elementId并将其传递给removeRecord函数

{{#my-popover tagName="i" title="Wirklich löschen?" classNames="fa fa-times red-text" as |elementId|}}
<button  class="btn btn-warning" {{action 'removeRecord' elementId}}>Delete it!</button>
{{/my-popover}}

太好了!这是上下文组件的力量。
import Ember from 'ember';
export default Ember.Controller.extend({
  appName: 'Ember Twiddle',
  actions:{
    removeRecord(elementId){
      console.log('removeRecord in application ',elementId);
    }
  }
});