Javascript Spine.js中的控制器间通信
在同一Spine.js中是否可能有两个控制器:公寓和地图。有没有一种方法可以在选择公寓时调用get-the-Map做些什么Javascript Spine.js中的控制器间通信,javascript,ruby-on-rails,coffeescript,spine.js,Javascript,Ruby On Rails,Coffeescript,Spine.js,在同一Spine.js中是否可能有两个控制器:公寓和地图。有没有一种方法可以在选择公寓时调用get-the-Map做些什么 # Apartments class Show extends Spine.Controller events: 'click [data-type=edit]': 'edit' 'click [data-type=back]': 'back' constructor: -> super @active (params) -&
# 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.
我想你别无选择 使用路线 使用脊椎的路由导航到公寓url并更新地图。您可以在Spine上看到一个示例 在index.coffee上定义/公寓路线: @routes '/apartment/:id': (params) -> @apartmentList.active(params) @map.show.active(params) @路线 “/partment/:id”:(参数)-> @apartmentList.active(参数) @map.show.active(参数) 在侧边栏/公寓列表控制器上,使用@navigate来更改状态 change: (item) => @navigate '/apartment', apartment.id 更改:(项目)=> @导航“/partment”,partment.id 最后,捕获地图控制器()上的活动事件并更新地图 使用事件 当选择公寓火灾事件Spine.trigger'selectApartment',item.id,然后在地图控制器上捕获此事件:SelectAparmtNet上的Spine.bind'selectApartment' Spine.trigger 'selectApartment', item.id Spine.bind 'selectApartment', onSelectAparmtnet