fix(affix): cleans up event listeners when scope is destroyed