是否可以在同一个Spine.js中拥有两个控制器:公寓和地图。有没有办法打电话让地图在选择公寓时做点什么?
# Apartments
class Show extends Spine.Controller
events:
'click [data-type=edit]': 'edit'
'click [data-type=back]': 'back'
constructor: ->
super
@active (params) ->
@change(params.id)
change: (id) ->
@item = Apartment.find(id)
@render()
render: ->
@html @view('apartments/show')(@item)
# also update the map here.
答案 0 :(得分:2)
我猜你几乎没有选择
使用Spine的路由导航到公寓网址并更新地图。您可以在Spine的Contacts example上看到一个示例。
在index.coffee上定义/ apartment routes:
@routes '/apartment/:id': (params) -> @apartmentList.active(params) @map.show.active(params)
在侧边栏/公寓列表控制器上,使用@navigate更改状态
change: (item) => @navigate '/apartment', apartment.id
最后在地图控制器上捕捉活动事件(like here)并更新地图
选择公寓火灾事件
Spine.trigger 'selectApartment', item.id然后在地图控制器上捕捉此事件:
Spine.bind 'selectApartment', onSelectAparmtnet