Есть еще одна вещь, которую следует соблюдать в отношении этого предупреждения.
Я получал его, хотя я фактически декларировал компонент в своем модуле, и это заставляло меня поднимать стену, потому что все выглядело правильно.
Так что я прошел через compiler.umd.js где получал сгенерированных предупреждение, и я заметил, что компонент, для которого я получаю сообщение об ошибке было добавляется в массив директив дважды здесь:
if (force || !transitiveModule.directivesSet.has(dirMeta.type.runtime)) {
transitiveModule.directivesSet.add(dirMeta.type.runtime);
transitiveModule.directives.push(dirMeta);
declaredDirectives.push(dirMeta);
this._addTypeToModule(dirMeta.type.runtime, moduleType);
return true;
}
В принципе, хотя компонент уже был в директивах. Set, transitiveModule.directivesSet.has (dirMeta.type.runtime) оценивал значение false, поэтому он снова добавлялся, и один из них вызывал предупреждение.
Оказалось, что операторы импорта в моем файле маршрутизации и мой файл модуля несколько отличались. Один заглавной первую букву каталога в пути, в то время как в другой каталог был в нижнем регистре, как так:
//in routing
import { SomeComponent } from './Directory/some.component';
//in app module
import { SomeComponent } from './directory/some.component';
После того, как я изменил так пути совпадают, предупреждение пошел прочь. Все остальное, казалось, функционировало должным образом с несоответствующим корпусом.
заведите [Minimal, Complete, и Проверяемость Пример] (http://stackoverflow.com/help/mcve) –
выше предупреждение связано с неправильным использование '@ NgModule'. Использование атрибута 'entryComponents'' @ NgModule' должно сортировать это. – balteo