将组件动作发送到控制器emberjs

时间:2015-07-06 22:59:35

标签: javascript ember.js ember-cli

我正在尝试将组件中的操作发送到控制器。我有user.hbs包含组件:

{{#liquid-if showQuickLaunch}}
    {{quick-launch}}
{{/liquid-if}}  
<div id="userAppWrapper">
    {{user-nav}}
</div>

现在,保存该操作的组件是user-nav组件,就在这里:

<header class="user-main-nav">
    <nav class="user-nav">
        <ul class="list-user-nav">
            <li class="nav-brand">
                <p>Handmade Digital</p>
            </li>
        </ul>
        <ul class="list-right-user-nav right">
            <li>
                <p {{action 'showQuickLaunch'}}><i class="fa fa-plus"></i></p>
            </li>
            <li>
                <p>Rodzzlessa <i class="fa fa-angle-down"></i></p>
            </li>
        </ul>
    </nav>
</header>

你可以看到它现在有动作showQuickLaunch我想将该动作发送给用户控制器,因为如果你在user.hbs上注意到第一个块是一个if语句来显示{{1 }} 或不。属性quicklaunchshowQuickLaunch而非user controller有关,如何将该操作发送到nav-component

1 个答案:

答案 0 :(得分:0)

user-nav内部组件中,您需要处理showQuickLaunch之类的操作:

// user-nav.js
Ember.Component.extend({
   actions: {
     showQuickLaunch() {
       this.sendAction();
     }
   }
});

Official Doc很好地解释了here我发布了一个虚拟的例子。

希望能帮到你!