【问题标题】:Intercomponent Communication组件间通信
【发布时间】:2017-01-12 13:45:06
【问题描述】:

我使用 Angular 1.6。 我有组件“用户详细信息”,其中包含另外两个组件“切换器”和“用户表”,如下所示:

<user-details>
    <switcher> </switcher>
    <user-table> </user-table>
</user-details>

“switcher”组件包含 md-switcher,“user-table”包含数据表。当我按下 md-switcher 时,我需要借助 ng-if 指令隐藏我的“用户表”组件。

【问题讨论】:

    标签: angularjs angular-ng-if angularjs-1.6


    【解决方案1】:

    您可以使用div(甚至span)包装&lt;user-table&gt; 组件,然后使用ng-ifng-show。然后可以使用md-switcher 更改隐藏此组件的条件。

    所以假设你有一个这样的 md-switcher:

    <md-switch ng-model="canShow" aria-label="Show?">
      Show ?
    </md-switch>
    

    表达式"canShow" 用于绑定数据,稍后用于决定显示/隐藏&lt;user-table&gt;,如下所示:

    <div ng-show="canShow" ...>
      <user-table> </user-table>
    </div>
    

    虽然我使用了div,但我相信你可以使用span获得类似的效果。试一试,如果有帮助,请告诉我们。

    【讨论】:

    • 以什么方式?您是否遇到错误或您希望采用不同的方法?
    • 当我将 ng-if 添加到为组件用户详细信息包装的 div 时,它总是隐藏 - 当我在真实位置单击 md-switch 或在错误位置单击 md-switch 时.为什么会这样? :(
    • 请尝试在我提供的示例中使用ng-show 执行相同的操作 - 如果这不起作用,那么我们可以更仔细地查看它,但我确实认为ng-show 会起作用。我不确定这是否与 ng-if 指令如果表达式计算结果为 false 时删除 HTML 元素有关。
    猜你喜欢
    • 2014-12-21
    • 2017-09-12
    • 2019-05-30
    • 2017-04-07
    • 2016-06-09
    • 2015-09-18
    • 2016-05-01
    • 2017-09-04
    • 2021-03-02
    相关资源
    最近更新 更多