Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Spine.js中的控制器间通信_Javascript_Ruby On Rails_Coffeescript_Spine.js - Fatal编程技术网

Javascript Spine.js中的控制器间通信

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) -&

在同一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) ->
      @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