fix directive teardown when no watcher is present