【发布时间】:2014-10-09 19:03:49
【问题描述】:
我正在开发一个实时 Web 应用程序,我正在使用 Angular 作为 javascript 框架,在服务器端我正在使用 play 框架,为了制作实时应用程序,我正在使用彗星技术,基本上我从服务器推送脚本。
我实际上是在尝试从从服务器推送到角度控制器的脚本进行通信,但我有点卡住了。
这是我尝试过的。
我的观点:
<div id="workStation" ng-controller="workStation">
....
<input type="text" id="bridge" ng-change="serverEvent()" ng-model="bridge">
<iframe hidden="hidden" id="messages" src="/register"></iframe>
</div>
我的控制器
var app = angular.module('debQApp',[]);
app.controller('workStation'['$scope','$timeout','$interval','api','websocket','$http','$q',function($scope,$timeout,$interval,api,websocket,$http,$q)
{
....
$scope.bridge = 'waiting';
$scope.serverEvent = function()
{
console.log('Event');
};
}
问题是函数 serverEvent 永远不会被调用。我从服务器推送的脚本只修改输入。
<script>parent.document.getElementById('bridge').value = 'event';</script>
实际上,脚本完成了它的工作,因为我看到输入改变了它的值,但我无法从角度注意到变化。
使用不同的技术,因为 websocket 是不可能的,因为客户需要。
注意:在控制器中我做了很多与帖子无关的事情,为此我省略了,我真的需要角度注意变化。
谢谢。
【问题讨论】:
标签: javascript angularjs playframework-2.0 comet