gpt4 book ai didi

javascript - 如何将组件方法共享给子组件?

转载 作者:行者123 更新时间:2023-12-03 04:36:22 25 4
gpt4 key购买 nike

我有两个组件:

<cmp-one></cmp-one>当我使用 $compile 时,它被插入到 DOM 中创建 <cmp-top> 。然后在 cmpTop我需要获取<cmp-one> Controller 并将其插入 <cmp-top> .

插入工作正常,但我需要访问cmpTop Controller 方法来自cmpOne - 但不知道怎么办。

到目前为止我尝试过添加 require: {cmpTop: '^^'} - 无法工作,因为在插入完成之前没有父组件。

那么,我怎样才能实现这一目标呢?我的意思是 - 将一些组件插入另一个组件,并将其方法共享给添加的子组件。

已更新

这是骗子:http://plnkr.co/edit/mgwC5Mbh5qid5q5ELDdQ?p=info

所以,我需要访问PanelController的方法来自 DialogComponentController .

或者,也许我做错了 - 所以请给我一个线索如何正确地做到这一点。

最佳答案

您可以使用通用服务在它们之间进行通信(如playerone提到的)。

app.controller('mainController', function($scope, menuSelection) {
$scope.menuSelection = menuSelection; // retrieve settings object from service method and bring into scope
// now whenever one sets $scope.menuSelection.selected = "object 2", it will update the value in the other controller as well (and vice-versa)
});

app.controller('secondController', function($scope, menuSelection) {
$scope.menuSelection = menuSelection; // retrieve settings object from service method and bring into scope
});

app.factory('menuSelection', function() {
var settings = {};
settings.selected = 'Object 1'; // default
return settings;
});

您可以将 $scope.menuSelection.myFooFunction = ... 指向一个指令中的函数,然后从另一个指令中调用它。

关于javascript - 如何将组件方法共享给子组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43275164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com