gpt4 book ai didi

javascript - $emit 在 angularjs 中将数据从一个 Controller 发送到另一个 Controller 时不起作用

转载 作者:行者123 更新时间:2023-11-30 12:09:01 26 4
gpt4 key购买 nike

我尝试调用函数,同时将数据从一个 Controller 发送到另一个 Controller 在 AngularJS 中。但它在 Angular v.1.2 中对我不起作用。我需要从 ctrl2 调用 ctrl1 函数。任何人都可以给我一些关于这个问题的想法吗?

示例代码:

    <div ng-contorller="ctrl">
<div ng-contorller="ctrl1">
</div>
<div ng-contorller="ctrl2">
</div>
</div>

function parentctrl(){

}
function ctrl1($scope){
$scope.callfn = function(){
console.log("success");
}
$scope.$on('emitdata', function(event, data){
$scope.callfn();
})
}
function ctrl2($scope){
$scope.$emit('emitdata', {'key':'uu'});
}

最佳答案

或者您可以同时使用发射和广播。子作用域发出,父作用域广播。像这样:http://plnkr.co/edit/pjGIHByzkwCeNiaVrdb6?p=preview

app.controller("ctrl", function($scope) {
$scope.$on('emitdata', function(event, data) {
// This event will reach: ctrl -> ctrl1 + ctrl2
$scope.$broadcast('broadcast-data', data);
});
});

app.controller("ctrl1", function($scope) {
$scope.$on('broadcast-data', function(event, data) {
$scope.received = data;
})
});

app.controller("ctrl2", function($scope) {
$scope.emit = function() {
// This event will reach: ctrl2 -> ctrl -> rootScope
$scope.$emit('emitdata', {'key': 'uu'});
};
});

关于javascript - $emit 在 angularjs 中将数据从一个 Controller 发送到另一个 Controller 时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34358992/

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