Почитайте про область видимости переменных. У вас изначально они в глобальной области и перезаписываются, если сделаете так, то в других функциях вашего плагина их не будет.
Skrolea: если получаете ошибку Unexpected value 'undefined' то значит вы импортировали не оттуда. Пробуйте перебирать через console.log() ваши импорты и увидите что приходит пустое
ГЛЕБ ГЛЕБОВ: здесь две вещи, первая мы сохраняем asyncpipe, который инкапсулирует всю подписку и change detection, второе мы сохраняем сам объект observable, потому что в AsyncPipe есть строка if (obj !== this._obj) {. Т.е. если не сохраним, то потеряем всю цепочку выполнения