我有以下余烬控制器,它将等待 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.
我的问题是这些:
- 我不使用 ArrayController 是对的,因为它们仅用于集合吗? 很抱歉这个明显的问题,但我只想检查一下。
- 如果我创建一个新视图,每次调用 addLead 方法时,我是否需要保留对内部数组中每个视图的引用,并在释放主视图时遍历调用每个子视图的数组 dispose ?
- 我最好为每个附加的子视图创建一个单独的控制器? 我猜不,但想检查一下。
如能就这些问题提供任何帮助或指导,将不胜感激。
我不打算回答你的具体问题,而是建议一个我认为更惯用的 Ember 并且更简单的替代实现。
很难说你更广泛的视图层是什么样子的,但我根据我对你的问题域的猜测,我认为你会有一个#each
的帮助程序或CollectionView
,它被数据绑定到ArrayProxy
子类leadsController
。当 json 从 websocket 传入时,在 leadsController
上调用 pushObject
。绑定将在视图输出中自动更新和呈现新的潜在顾客。
如果我误解了该应用程序的功能,请澄清。