0
我有一个应用程序应用程序,我想在其中添加sse。问题是我收到消息后无法调用控制器功能。我可以通过声明一个像var ac = new App.ActivecallsController; ac.addNewCall().
这样的控制器的新实例来调用它。但是它创建了一个新实例,这就是为什么它不会更改控制器中activeCalls数组的值。在Ember.js中添加html5服务器发送的事件
if(typeof(EventSource)!=="undefined"){
self.set('source',new EventSource("http://localhost/sse/demo_sse.php"));
var source=new EventSource("http://localhost/sse/demo_sse.php");
source.onmessage=function(event){
var data = $.parseJSON(event.data);
console.log(data.length);
if(data.length){
**//Here I want to call the addNewCall function.**
}
}
}
我控制器
App.ActivecallsController = Ember.ArrayProxy.extend({
activeCalls:[],
content:[],
addNewCall:function(model){
var self= this;
console.log('here');
App.Cdrglobal.set('active_call',App.Cdrglobal.active_call+1);
self.activeCalls.insertAt(0,model);
}
});
与Ember的数据,你可以做类似App.store.load(App.Message,消息),但我看到你在这里没有使用Ember Data。 – outside2344 2013-04-10 20:44:18
为什么要制作两个EventSource实例? – 2014-05-10 00:05:18