问题标签 [angular-broadcast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
366 浏览

angularjs - 从另一个控制器关闭引导模型弹出窗口

嗨,我有一个控制器 A,它根据一些 URL 参数生成一个表单,并在提交该表单后执行一些操作。现在我创建了另一个控制器B,并在其中创建了一个按钮。单击该按钮后,将打开一个模型弹出窗口,其中包含作为 iframe src 的 controllerA url。在该模型弹出窗口中,我能够看到生成的表单。提交该表单后,我必须关闭模型弹出窗口。

控制器A

控制器B

这是我的问题如何在提交表单后关闭该模型?

这是示例代码:

此代码包含在控制器B

在控制器A中,我有一种提交表单的方法。提交表单后,我如何关闭从控制器 B 呈现的上述弹出窗口。

我想希望我解释正确。请帮我解决这个问题。提前致谢。

0 投票
0 回答
127 浏览

javascript - 子组件没有接收到来自父组件的广播

我正在使用 Angular 1.5 构建一个简单的网格组件component。结构是:

<grid-component>广播事件<grid-header>,但标头组件未接收到消息。

这是我使用的一个简单示例。

有趣的是,当我检查作用域时,它们实际上是作用域层次结构中的兄弟。

家长

孩子

两者的父母的注意 id 是相同的。另外,请注意,孩子的 prevSibling 是父母。

如果我更改$scope.$broadcast$scope.$parent.$broadcast它按预期工作,因为他们是兄弟姐妹。

当它们是嵌套组件时,为什么 Angular 将它们视为兄弟姐妹,并且有没有一种无需遍历$parent链即可广播事件的方法?

0 投票
0 回答
161 浏览

javascript - AngularJS:动态添加的控制器之间的通信

这是我在 StackOverflow 上的第一篇文章/问题,所以如果您发现我可以做出任何改进 - 请给我一个建议 :)。

现在让我深入探讨这个问题。

为了简单起见,我删除了所有不相关的代码部分,只提供了必要的文件。

上面的代码片段按我的预期工作 -$broadcast被调用,所有控制器都收到消息并做出反应。在我的应用程序中,广播仅由发送它的控制器接收。我认为问题是由动态 HTML 插入引起的。

要求是在页面加载时动态呈现控件。我正在使用以下方法来生成内容。

我使用相同的控制器,因为它为所有控件共享相同的逻辑。

我已经阅读了很多关于$broadcast$emit功能的材料、创建控制器的指南、定义模块和服务(这让我了解了如何使用$rootScope注入创建服务)。

现在我认为在角度框架(AddWidgets函数)之外生成角度内容可能会导致问题(@stackoverflow/a/15676135/6710729)。

当我检查了类似情况的 JSFiddle 示例(http://jsfiddle.net/XqDxG/2342/)时,引发了我的蜘蛛感知警报 - 控制器没有父子关系。当我查看控制器的角度范围时,我可以看到它$$nextSibling$$prevSibling属性已被填充。在我的情况下,这些是nulled [ here ]。

你能给我一些指导方针,我该如何解决我的问题?我对 AngularJS 很陌生,并且在开发应用程序时正在学习。

0 投票
1 回答
254 浏览

javascript - 我可以解决广播事件中的承诺吗?

我们正在使用 angular legacy (1.5) 我正在尝试使用 3rd 方库批量加载一些图层。我需要等到它们被加载后再继续。因此,在我的获取数据部分,它调用库并要求它添加数据,我在此部分中启动 $q.defer 并将其分配给工厂级变量。在第 3 方库的服务中,我设置了请求输出和请求输入的计数,当它们匹配时,$broadcast 和事件告诉我它完成了。然后我监听 ($on) 这个事件并将承诺设置为已解决。但是应用程序不会等待这个。我知道这很奇怪,但我能做什么。

我们的代码非常复杂,所以我试图创建我们试图归档的粗略示例。

这不是等待承诺解决,而是进入“then”语句并“过早”处理下一个函数,我需要它等到第一个函数完成。

有任何想法吗?

0 投票
2 回答
322 浏览

angularjs - angularJS中广播的主要目的是什么?

我在那里看到了一些广播示例,我观察到它仅用于将数据从父控制器发送到子控制器,但默认情况下,子控件可以访问父控制器,那么它的具体目的是什么?请不要带rootscope,如果我们使用rootscope则不需要广播和发射

0 投票
2 回答
691 浏览

angularjs - angularjs模态服务广播和问题

我正在使用angular-modal-service库。我的逻辑是:当模式打开时,它运行一个函数 fromSomeService$rootScope.$broadcastfromSomeService到模式控制器,这样我就可以将资源从服务发送到我的模式控制器。但是,它不会触发。请帮我弄清楚我错过了什么。谢谢你。

**服务: **

**控制器: **

切换功能后它可以工作,但是......我如何将数据传递给模态?就像 ui-bs-modal 一样,他们有决心。

0 投票
1 回答
615 浏览

angularjs - angularjs1.5+ 组件不接收广播事件($on 不起作用)

我正在编写一些代码并意识到 angularjs1.5+ 组件实际上并没有接收到$scope.$broadcast事件,这意味着$scope.$on永远不会在组件控制器功能中运行。

虽然我能够$emit从组件控制器接收事件并由父控制器接收$on,但它只是不监听广播事件。

来自家长的广播:$scope.$broadcast('parentEvnt', [1,2,3]);

但未在组件中收到:$scope.$on('parentEvnt', function(event, data){ \\

我创建了这个plunker来显示这个问题。

搜索了一些文章以及关于 SO 的文章,但没有找到任何答案,并且尝试过$rootScope.$broadcast也没有帮助。

并且,如果不可能,那么从应用程序中的任何随机位置通知组件的最佳方式是什么?

0 投票
1 回答
167 浏览

angularjs - 从 $scope.$on 访问 $scope

我有这个代码:

我从 $broadcast 获取数据 好的,一切都很好。除了我需要从 $scope.switchStay 函数中访问指令的 $scope 之外。有没有办法做到这一点?

0 投票
1 回答
673 浏览

angular2-services - 如何在angular2中销毁/取消订阅广播消息事件

我正在angular2中开发应用程序,这里我使用消息广播将数据从一个组件更新到另一个组件。

这是代码, message_event.ts

广播者.ts

我已经在其中一个组件中注册/订阅了此事件。

在这里我需要检查事件是否已经注册。或者有没有办法销毁/取消订阅这个消息事件。

请帮我解决上述问题。

提前致谢。

0 投票
0 回答
106 浏览

angularjs - ModalService $on & $broadcast 多个实例

这些是同一角度控制器中的方法。

问题是 $on 每 n 次点击就会被调用一次。因此,如果这是我第三次单击以显示弹出窗口。$on 将运行 3 次,$broadcast 将运行一次。

我试图杀死 $scope,但它不起作用。似乎控制器(也在对话框中初始化,没有被破坏。

有什么想法吗?