将动作发送到包含组件

时间:2015-04-02 10:59:07

标签: ember.js

如果我有两个组成部分:

  • NAV-菜单
  • NAV-按钮

nav-menu是一个包含 nav-button的块组件,如下所示:

{{#nav-menu}}
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    {{nav-button}}
{{/nav-menu}}

我希望按钮能够直接向菜单发送操作,告诉它切换它的可见性状态。我想如果我在Controller中挂入mutux点,那么我可以做类似的事情:

{{#nav-menu toggleNavigation=mutex}}
    {{nav-button action=mutex}}
{{/nav-menu}}

这是唯一的方法吗?只是寻找最优雅,以烬为中心的方式。

1 个答案:

答案 0 :(得分:1)

之前我遇到过这个问题,不幸的是,公共API中没有办法做到这一点。创建块组件时,在其中呈现的任何内容都具有外部范围的上下文,组件。不幸的是,没有办法改变这种行为,但它确实有意义。

我想说你提出的方法是处理这种情况的最佳方法:在控制器上有一个传递给外部组件的变量。它符合Ember的“数据下降,行动起来”的理念。