我有一个 ember 应用程序,我想在其中添加 sse。问题是收到消息后我无法调用控制器功能。我可以通过声明控制器的新实例来调用它,var ac = new App.ActivecallsController; ac.addNewCall().
但它会创建一个新实例,这就是它不会更改控制器中 activeCalls 数组的值的原因。
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);
}
});