angularjs - 如何使用 AngularJs $emit 正确发送事件
问题描述
我想在某个时刻将数据从一个控制器发送到另一个控制器。在发布之前,我已经查看了文档并在 Google 上搜索了解决方案。但似乎无法让它正常工作。
我知道 $emit 用于在作用域层次结构上发送事件,而 $braodcast 用于向下电报。
var app = angular.module('App.Controllers', ['ui.bootstrap'])
.controller('FordelaPaBetankandeCtrl',
['$rootScope', '$scope',
function ($rootScope, $scope) {
$scope.$on("delatYrkande", function (selectedValue) {
});
}])
.controller('UtskottCtrl',
['$rootScope', '$scope'
function ($rootScope, $scope) {
}])
.controller('TidlinjeCtrl',
['$rootScope', '$scope'
function ($rootScope, $scope) {
}])
.controller('UserInfoCtrl', ['$scope',
function ($scope){
}])
.controller('VisaSammantradesplanCtrl', ['$rootScope', '$scope',
function ($rootscope, $scope) {
}])
.controller('HanteraGrunddokumentCtrl',
['$rootScope', '$scope',
function ($rootScope, $scope) {
$scope.Emit = function (selectedValue) {
$scope.$emit("delatYrkande", selectedValue);
}
}]);
解决方案
一种方法是从 $rootScope 广播:
$scope.Emit = function (selectedValue) {
̶$̶s̶c̶o̶p̶e̶.̶$̶e̶m̶i̶t̶(̶"̶d̶e̶l̶a̶t̶Y̶r̶k̶a̶n̶d̶e̶"̶,̶ ̶s̶e̶l̶e̶c̶t̶e̶d̶V̶a̶l̶u̶e̶)̶;̶
$scope.$root.$broadcast("delatYrkande", selectedValue);
}
有关详细信息,请参阅
推荐阅读
- r - 使用 vscode 运行安装了 R 4.0.5 的 r 程序
- ruby - 根据 if 语句添加到实例?
- swift - 向属性观察器中的对象添加平移手势
- php - PHP 8 重复属性的错误:是否可以多次使用属性?
- ios - Xcode 12.4 Apple M1 中没有此类模块错误
- c# - 功能适用于 Unity,不适用于电话
- python - 如何从字典中找到得分最高的 10 个节点
- r - 为什么 poly(x,2) 中的一阶自变量不会在多元回归中生成其估计值?
- javascript - 如何处理 HandleSubmit 上的两个调度操作
- python - 我如何读取()整数?包含变量时如何编写()新行?