Javascript 在委托内部调用取消委派

Javascript 在委托内部调用取消委派,javascript,javascriptmvc,Javascript,Javascriptmvc,我在jsmvc的main上收听$.route.delegate('someparam',…),当它被触发时,我决定加载哪个控制器,并删除旧的控制器(如果可用),这个问题我也在控制器中使用$.route.delegate('some-other-param'),问题是当控制器被破坏时,它尝试$.router.Unelegate('some-other-param'),这会导致错误: **delegate is undefined:** file: delegate.js 73: if

我在jsmvc的main上收听$.route.delegate('someparam',…),当它被触发时,我决定加载哪个控制器,并删除旧的控制器(如果可用),这个问题我也在控制器中使用$.route.delegate('some-other-param'),问题是当控制器被破坏时,它尝试$.router.Unelegate('some-other-param'),这会导致错误:

    **delegate is undefined:**
file: delegate.js
73:    if(event.batchNum && delegate.batchNum === event.batchNum){
因此,就我在代码中所看到的,问题是因为我在查询委托的for循环中调用了unelegating

// for each delegate
            for(var i =0; i < len; i++){
//对于每个委托
对于(变量i=0;i

有什么方法可以避免这个问题吗?

我找不到一种方法来解决这个问题,最后我对“someparam”(外部侦听器)使用bind,对“someother param”(内部侦听器)使用delegate

这是删除未定义错误的解决方法