私は 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);
}
});