【发布时间】:2024-01-14 02:54:01
【问题描述】:
我正在尝试在 ember 中创建一个动态导航栏。我有一个包含在应用程序模板中的部分标题,它有一个元素“搜索”,只有在我到达我的事件索引路由时才应该可见。我试过这样做:
ApplicationController = Ember.Controller.extend(
eventsIndexController: Ember.inject.controller 'events/index'
isSearchActive: Ember.computed 'eventsIndexController.showSearch', ->
@get 'eventsIndexController.showSearch'
在事件索引控制器中:
EventsIndexController = Ember.Controller.extend(
showSearch: false
当它到达事件索引路由时
EventsIndexRoute = Ember.Route.extend(
model: ...
setupController: (controller, model) ->
controller.set('model', model)
controller.set('showSearch', true)
deactivate: ->
@controllerFor('events.index').set('showSearch', false)
它工作正常 - 模型设置正确,搜索选项仅在事件索引路径中可见。问题是我想在单击搜索时执行一些操作,但是由于此操作是在 EventsIndexController 中声明的,因此我无法从应用程序模板中以正常方式调用它。所以我的第一个问题是:
- 您知道如何实现吗?
第二个问题是:
- 我怎样才能以更好的方式完成我正在尝试做的事情,因为它 似乎不是很明确的方法,它可能会变得非常复杂 在一段时间内我需要新的动态细分。
【问题讨论】: