在哪里放置来自 websocket 的每个响应的 Ember 视图



我有以下余烬控制器,它将等待 json 对象通过 onmessage 处理程序从 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

我的潜在客户控制器当前如下所示:

Lead.Controllers.Leads = Ember.Object.extend
  addLead: (lead) ->    
    @view = Ember.View.create
      controller: @
      #etc.

我的问题是这些:

  1. 我不使用 ArrayController 是对的,因为它们仅用于集合吗? 很抱歉这个明显的问题,但我只想检查一下。
  2. 如果我创建一个新视图,每次调用 addLead 方法时,我是否需要保留对内部数组中每个视图的引用,并在释放主视图时遍历调用每个子视图的数组 dispose ?
  3. 我最好为每个附加的子视图创建一个单独的控制器? 我猜不,但想检查一下。

如能就这些问题提供任何帮助或指导,将不胜感激。

我不打算回答你的具体问题,而是建议一个我认为更惯用的 Ember 并且更简单的替代实现。

很难说你更广泛的视图层是什么样子的,但我根据我对你的问题域的猜测,我认为你会有一个#each的帮助程序或CollectionView,它被数据绑定到ArrayProxy子类leadsController。当 json 从 websocket 传入时,在 leadsController 上调用 pushObject 。绑定将在视图输出中自动更新和呈现新的潜在顾客。

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

最新更新