Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从websocket事件处理程序调用angularjs控制器_Angularjs_Events_Controller_Websocket - Fatal编程技术网

从websocket事件处理程序调用angularjs控制器

从websocket事件处理程序调用angularjs控制器,angularjs,events,controller,websocket,Angularjs,Events,Controller,Websocket,我是angularjs的新手,可以在使用WebSocket连接到后端的应用程序的设计上使用一些指导。当套接字获取onmessage事件时,它应该加载一个动态视图。在加载视图之前,需要根据一些消息参数构建模型 那么,从onmessage事件处理程序调用控制器函数是一种可以接受的角度解决方案,还是有一种角度更高的方法?如果可以接受,我如何才能做到这一点?我应该调用路由并将路由参数传递给控制器吗?谢谢。您不会呼叫控制器。您只需更改到视图的路由并在那里运行初始化逻辑 这可以通过几种方式实现。如果初始化视

我是angularjs的新手,可以在使用WebSocket连接到后端的应用程序的设计上使用一些指导。当套接字获取onmessage事件时,它应该加载一个动态视图。在加载视图之前,需要根据一些消息参数构建模型


那么,从onmessage事件处理程序调用控制器函数是一种可以接受的角度解决方案,还是有一种角度更高的方法?如果可以接受,我如何才能做到这一点?我应该调用路由并将路由参数传递给控制器吗?谢谢。

您不会呼叫控制器。您只需更改到视图的路由并在那里运行初始化逻辑

这可以通过几种方式实现。如果初始化视图所需的数据很小,可以将其作为路由参数(也称为状态参数)

URL将如下所示:

http://yoursite.org/theView/theParameter

如果数据较大,则可以使用两个控制器都将注入的服务来共享数据。

如果onmessage事件是对客户端请求的websocket服务器响应,则可以使用angular service$q使用承诺/延迟实现。这里有一个很好的解释:

如果onmessage事件是来自websocket服务器的推送数据,则可以在控制器中使用$broadcast来广播onmessage事件,并使用$on来侦听广播事件


我有可能帮助你的代码。这是xively.com REST API使用websocket提供的angular服务:

如果后端通过websocket发送数据,而不依赖于用户发起任何操作,我将使用$broadcast to$broadcast,无论您的后端将什么推送到应用程序。然后,您可以从应用程序中的任何位置获取此事件。