问题标签 [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 投票
0 回答
71 浏览

angular-broadcast - 使用 ng2-cabel 在 angularjs 4 中调用了两次广播者操作

我正在使用 ng2-cable 进行聊天并广播来自 Rails 中服务器的任何操作

AngularJs

--> 在 app.component.ts 中

从' ng2-cable '导入{Ng2Cable,Broadcaster} ;

--> 用于连接

私有 ng2cable:Ng2Cable,

this.ng2cable.subscribe(environment.apiEndpoint+"/cable", 'ChatChannel',{room: this.currentUser.id});

--> 从服务器读取通知

从“ng2-cable”导入{广播公司};

私人广播公司:广播公司,

this.broadcaster.on('ExpertQuestionList').subscribe(message => { console.log("加载后返回此页面时调用了多次") } );

这里,ExpertQuestionList 是一个动作名称。它将使用动作电缆从 Rails 服务器广播。

-------------------------------------------------- -------------------------------------------------- --------------------

ExpertQuestionList 从服务器广播一次,我可以在我的 rails 日志中看到,但在 console.log 中调用了两次。两次意味着它重复多次,与您将在此页面上出现的次数相同。如此简单的重新初始化很多次。我想要重置或销毁操作(this.broadcaster.on('ExpertQuestionList'))

0 投票
1 回答
32 浏览

javascript - $broadcast 仅在使用有限字符时触发

尝试使用 Angular $broadcast,当我测试它并使用字符串“hi”,并在兄弟控制器中观察它时,它工作正常,如下所示:

一旦我将字符串更改为其他任何内容,例如phaseChange,它就无法调用$on第二个控制器中的方法。不知道为什么。我试图包装$broadcast一个$timeout方法,但这并没有解决问题。

问题

我是否$broadcast以错误的方式使用或我的语法不正确?

0 投票
1 回答
65 浏览

angularjs - 如何在事件广播的超时延迟内停止间隔?

在我的 Angular 1.5 中,用户登录他们的帐户后,我有各种指令在超时内开始他们的间隔。例如,我UserEmailNotificationsCtrl在检查新电子邮件的指令之一中有这个:

如果用户注销,我会广播一个事件,以便停止上述间隔以防止 400 错误请求:

以上工作正常。但是,这是我遇到的问题:

如果以防万一,用户在间隔检查开始之前注销,因为它被包裹在 20 秒后开始的超时中,则event:stop-intervals广播被错过。在这些情况下,间隔在设置的超时之后开始,并且不知道event:stop-intervals在此之前被触发以停止间隔。

我的问题是:如何event:stop-intervals在指令中开始间隔之前检查广播是否被触发?event:stop-intervals(或)如果在触发超时的间隔检查之前触发了指令,该指令如何阻止间隔开始?

0 投票
2 回答
34 浏览

angularjs - 无法访问角度指令的隔离范围

第一指令:

第二条指令:

父控制器:

所以,问题是当我尝试从 html 模板调用函数时myDirectiveTwo,处于活动状态的控制器是父控制器,而不是孤立的控制器。

可能与我正在使用的广播有关吗?

html代码:

奇怪的是我得到了数据值并且 ng-repeat 在加载时工作正常。但是,当我单击按钮时,它什么也没做。如果我在父控制器中添加相同的功能,它会被调用.. :( 如何使隔离范围控制器再次活动..?

0 投票
1 回答
278 浏览

angular - 在 angularjs 控制器中侦听来自 angular 4 组件的事件

我正在开发一个混合角度应用程序。我需要在 angularjs 控制器中监听一个事件(可能是一个 observable ),并且该事件将由 angular 4 组件触发。我们有什么办法可以真正做到这一点?