【问题标题】:sendAction is not working for component in ember jssendAction 不适用于 ember js 中的组件
【发布时间】:2017-02-15 00:34:26
【问题描述】:

sendAction 不适用于组件。当在视图中使用组件并将动作从组件发送到视图时。

确认-dailog.js

    import Ember from 'ember';
    export default Ember.Component.extend({
    actions:{
       closeConfirmDialog:function(){
          this.sendAction('onCancel');
       }
   }

})

confirm-dailog.hbs

<div class="dialog" id="dialog">
   <div class="text">{{text}}</div>
   <div class="button"{{action 'closeConfirmDialog'}}>Cancel</div>
</div>

modal.js

import Ember from 'ember';
export default Ember.View.extend({
   layoutName: 'components/modal-box',
   actions:
   {
       closeDialog:function()
        {   
            console.log('called model closedialog')
        },
   }
})

modal-box.hbs

<div class="dialog" id="dialog">
    {{yield}}
    {{confirm-dialog onCancel="closeDialog" text="Would you like to close the modal"}}
</div>

当我单击取消按钮时,closeConfirmDialog 动作被调用并从那里我试图发送 closeDialog 动作,但它显示错误 没有处理该动作' closeDialog'

here i have added screenshot of ui

余烬:1.8.1

Ember 数据:1.13.7

车把:1.3.0

jQuery : 1.11.1

【问题讨论】:

  • 为什么在modal.js中使用Ember.View而不是Ember.Component?
  • @ykaragol Ember.Component 正在工作。但我有一些情况只适合视图。
  • 你能把它变成一个玩意儿吗?实际上,在我们正在进行的 7 个项目中,我们从来不需要视图。
  • this.render(name, { into: 'application', outlet: 'modal', view:'common/modal' });就是这样。我用过视图
  • 在文档中,视图参数被定义为:“与‘发布’路由相关的视图”。如果需要,您可以提供路线模板。因此不要使用视图。

标签: ember.js


【解决方案1】:

从 Ember 2.0 API 中删除视图。 http://emberjs.com/deprecations/v1.x/#toc_ember-view

我建议您将 view 替换为 Component。 此外,对于您的要求,ember-elsewhere addonember-modal-dialog 将是最合适的。

【讨论】:

    猜你喜欢
    • 2013-12-05
    • 2014-11-07
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多