【问题标题】:Sending an action to containing component向包含组件发送操作
【发布时间】:2015-06-07 07:24:45
【问题描述】:

如果我有两个组件:

  • 导航菜单
  • 导航按钮

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 中的一个互斥点,那么我可以做类似的事情:

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

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

【问题讨论】:

    标签: ember.js


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 2011-10-29
      • 1970-01-01
      相关资源
      最近更新 更多