【问题标题】:Pass data between "brothers" components在“兄弟”组件之间传递数据
【发布时间】:2018-07-27 11:21:42
【问题描述】:

您可能想知道我所说的兄弟组件是什么意思,这只是两个不同的组件具有相同的父组件。

我正在使用 angular.js 5.11

假设我有一个包含 child1 组件和 child2 组件的父组件。我的 child1 组件中有一个变量 vm.active,我希望在我的 child2 视图中使用它(如果您想知道,可以在 ng-if 中使用)。

有什么想法吗?是否考虑在这 3 个组件中进行双向绑定?大家怎么看?或者也许考虑到他们来自同一个州,可能是 stateParams ?如果您有任何问题,请告诉我

【问题讨论】:

标签: angularjs data-binding angular-components


【解决方案1】:

这是创建服务的完美场景。请记住,控制器具有唯一的实例,但服务会传递一个公共实例。

https://www.w3schools.com/angular/angular_services.asp

【讨论】:

    【解决方案2】:

    在这种情况下不要使用双向数据绑定,因为您可以以更有效的方式完成相同的操作。两种方式绑定设置需要框架开销。

    一种方法:

    将父组件中的变量(比如 x)设置为与两个子组件的单向绑定。

    当 child1 对变量进行更新时,传入一个 parent 可以接收的 observable 引用。父级可以相应地设置 x 的值。现在两个孩子都可以看到更新。

    这是另一个:

    使用单例服务。将变量保存在相关服务中。使用 getter 和 setter 方法来检索和更新值。

    【讨论】:

      【解决方案3】:

      如果有人想知道的话,最后在第一个组件中使用$scope.$parent.$broadcast,在第二个组件中使用$scope.$on :)

      【讨论】:

        猜你喜欢
        • 2019-12-30
        • 2022-09-28
        • 2020-12-18
        • 2018-10-03
        • 1970-01-01
        • 2019-10-09
        • 1970-01-01
        • 2021-12-26
        • 2020-02-05
        相关资源
        最近更新 更多