0

我有一个 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);
   }
});
4

1 回答 1

-1

我找到了解决方案

 APP.__container__.lookup('controller:activecalls').addNewCall(model);
于 2013-08-15T06:41:32.200 回答