问题标签 [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.
angularjs - 从另一个控制器关闭引导模型弹出窗口
嗨,我有一个控制器 A,它根据一些 URL 参数生成一个表单,并在提交该表单后执行一些操作。现在我创建了另一个控制器B,并在其中创建了一个按钮。单击该按钮后,将打开一个模型弹出窗口,其中包含作为 iframe src 的 controllerA url。在该模型弹出窗口中,我能够看到生成的表单。提交该表单后,我必须关闭模型弹出窗口。
控制器A
控制器B
这是我的问题如何在提交表单后关闭该模型?
这是示例代码:
此代码包含在控制器B
在控制器A中,我有一种提交表单的方法。提交表单后,我如何关闭从控制器 B 呈现的上述弹出窗口。
我想希望我解释正确。请帮我解决这个问题。提前致谢。
javascript - 子组件没有接收到来自父组件的广播
我正在使用 Angular 1.5 构建一个简单的网格组件component
。结构是:
向<grid-component>
广播事件<grid-header>
,但标头组件未接收到消息。
这是我使用的一个简单示例。
有趣的是,当我检查作用域时,它们实际上是作用域层次结构中的兄弟。
家长
孩子
两者的父母的注意 id 是相同的。另外,请注意,孩子的 prevSibling 是父母。
如果我更改$scope.$broadcast
为$scope.$parent.$broadcast
它按预期工作,因为他们是兄弟姐妹。
当它们是嵌套组件时,为什么 Angular 将它们视为兄弟姐妹,并且有没有一种无需遍历$parent
链即可广播事件的方法?
javascript - AngularJS:动态添加的控制器之间的通信
这是我在 StackOverflow 上的第一篇文章/问题,所以如果您发现我可以做出任何改进 - 请给我一个建议 :)。
现在让我深入探讨这个问题。
为了简单起见,我删除了所有不相关的代码部分,只提供了必要的文件。
上面的代码片段按我的预期工作 -$broadcast
被调用,所有控制器都收到消息并做出反应。在我的应用程序中,广播仅由发送它的控制器接收。我认为问题是由动态 HTML 插入引起的。
要求是在页面加载时动态呈现控件。我正在使用以下方法来生成内容。
我使用相同的控制器,因为它为所有控件共享相同的逻辑。
我已经阅读了很多关于$broadcast
和$emit
功能的材料、创建控制器的指南、定义模块和服务(这让我了解了如何使用$rootScope
注入创建服务)。
现在我认为在角度框架(AddWidgets函数)之外生成角度内容可能会导致问题(@stackoverflow/a/15676135/6710729)。
当我检查了类似情况的 JSFiddle 示例(http://jsfiddle.net/XqDxG/2342/)时,引发了我的蜘蛛感知警报 - 控制器没有父子关系。当我查看控制器的角度范围时,我可以看到它$$nextSibling
和$$prevSibling
属性已被填充。在我的情况下,这些是null
ed [ here ]。
你能给我一些指导方针,我该如何解决我的问题?我对 AngularJS 很陌生,并且在开发应用程序时正在学习。
javascript - 我可以解决广播事件中的承诺吗?
我们正在使用 angular legacy (1.5) 我正在尝试使用 3rd 方库批量加载一些图层。我需要等到它们被加载后再继续。因此,在我的获取数据部分,它调用库并要求它添加数据,我在此部分中启动 $q.defer 并将其分配给工厂级变量。在第 3 方库的服务中,我设置了请求输出和请求输入的计数,当它们匹配时,$broadcast 和事件告诉我它完成了。然后我监听 ($on) 这个事件并将承诺设置为已解决。但是应用程序不会等待这个。我知道这很奇怪,但我能做什么。
我们的代码非常复杂,所以我试图创建我们试图归档的粗略示例。
这不是等待承诺解决,而是进入“then”语句并“过早”处理下一个函数,我需要它等到第一个函数完成。
有任何想法吗?
angularjs - angularJS中广播的主要目的是什么?
我在那里看到了一些广播示例,我观察到它仅用于将数据从父控制器发送到子控制器,但默认情况下,子控件可以访问父控制器,那么它的具体目的是什么?请不要带rootscope,如果我们使用rootscope则不需要广播和发射
angularjs - angularjs模态服务广播和问题
我正在使用angular-modal-service库。我的逻辑是:当模式打开时,它运行一个函数 fromSomeService
和$rootScope.$broadcast
fromSomeService
到模式控制器,这样我就可以将资源从服务发送到我的模式控制器。但是,它不会触发。请帮我弄清楚我错过了什么。谢谢你。
**服务: **
**控制器: **
切换功能后它可以工作,但是......我如何将数据传递给模态?就像 ui-bs-modal 一样,他们有决心。
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
也没有帮助。
并且,如果不可能,那么从应用程序中的任何随机位置通知组件的最佳方式是什么?
angularjs - 从 $scope.$on 访问 $scope
我有这个代码:
我从 $broadcast 获取数据 好的,一切都很好。除了我需要从 $scope.switchStay 函数中访问指令的 $scope 之外。有没有办法做到这一点?
angular2-services - 如何在angular2中销毁/取消订阅广播消息事件
我正在angular2中开发应用程序,这里我使用消息广播将数据从一个组件更新到另一个组件。
这是代码, message_event.ts
广播者.ts
我已经在其中一个组件中注册/订阅了此事件。
在这里我需要检查事件是否已经注册。或者有没有办法销毁/取消订阅这个消息事件。
请帮我解决上述问题。
提前致谢。
angularjs - ModalService $on & $broadcast 多个实例
这些是同一角度控制器中的方法。
问题是 $on 每 n 次点击就会被调用一次。因此,如果这是我第三次单击以显示弹出窗口。$on 将运行 3 次,$broadcast 将运行一次。
我试图杀死 $scope,但它不起作用。似乎控制器(也在对话框中初始化,没有被破坏。
有什么想法吗?