2012-03-04 55 views
1

我已经从一个网页套接字服务器通过在onMessage处理程序通过了将要等待JSON对象以下余烬控制器每个响应:如果把灰烬视图从WebSocket的

Lead.Controllers.ParsingController = Ember.Object.extend 
    start_parsing: (url_search) -> 
    socket = new Lead.WebSocket("ws://#{document.domain}:61615") 

    socket.onopen = (evt) -> 
     socket.send url_search.search_url 

    socket.onmessage = (evt) -> 
     Lead.leads_controller.addLead evt.data 

我LeadsController目前看起来是这样的:

Lead.Controllers.Leads = Ember.Object.extend 

    addLead: (lead) ->  
    @view = Ember.View.create 
     controller: @ 
     #etc. 

我的问题是:

  1. 我说的对不使用A rrayController,因为它们只能用于集合?对于显而易见的问题抱歉,但我只想检查。
  2. 如果我创建一个新视图,每次调用addLead方法,我是否需要保持对内部数组中每个视图的引用,并且在处理主视图时遍历数组,调用每个子视图上的dispose ?
  3. 我会更好地为每个附加的子视图创建一个单独的控制器吗?我猜不是,但想检查。

任何关于这些问题的帮助或指导将不胜感激。

回答

4

我不会回答你的具体问题,而是建议一个替代的实现,我认为这会更加地道的Ember并且更简单。

很难告诉你更广阔的视野层的样子,但我根据我在你的问题域的猜测,我会认为你将有一个#each助手或CollectionView是数据绑定到一个leadsController其子类ArrayProxy。当json从websocket进入时,请致电leadsController上的pushObject。绑定会自动更新并在视图输出中呈现新的潜在客户。

如果我误解了应用程序的功能,请做澄清。