# in pjax:success callback
@callController = ->
if window.currentController != (controller = window.getController())
window.currentController = controller
window[controller + "_controller"].call()
# part of window.getController()
# return "users", for example
@getController = ->
window.location.pathname.split("/")[1]
# controller code
@users_controller = ->
console.log "code from users_controller"
如何为每个控制器代码编写析构函数方法?例如。当users
更改为posts
时,我需要执行@users_controller.destroy()
。
或者向我展示这个问题的另一个解决方案:)
答案 0 :(得分:1)
您拥有currentController
中的当前控制器,因此您可以使用您已使用的相同window[c + '_controller']
技术查找名称。然后,只需在您找到的内容上致电destroy
:
@[@currentController + '_controller'].destroy() if(@currentController)
@currentController = controller
@[@currentController + '_controller']()
另请注意,您不需要call
,因为@currentController + '_controller'
属性将是一个函数,因此您可以直接调用它; @
应为window
,因此您可以使用@currentController
代替window.currentController
。