Angular: не удается привязаться к ‘uploader’, но FileUploadModule импортируется в тот же модуль

#angular #file-upload #ng2-file-upload

#angular #загрузка файла #ng2-загрузка файла

Вопрос:

У меня возникла странная проблема при использовании директивы удаления файла [uploader] из ng2-file-upload. Вывод Angular complier является:

Не может быть привязан к ‘uploader’, поскольку это неизвестное свойство ‘div’.

Я искал какие-либо похожие проблемы на этом сайте, но, с моей точки зрения, все правильно:

  • Объявить компонент в app.module — проверить
  • Импортируйте FileUploaderModule в то же приложение.модуль — проверить
  • других модулей (кроме маршрутизации) нет

приложение.модуль:

 [...]
import { SongFilesComponent } from './components/songs/song-files/song-files.component';
import { FileUploadModule } from 'ng2-file-upload';

@NgModule({
  declarations: [
    [...]
    SongFilesComponent
  ],
  imports: [
    [...]
    FileUploadModule,
    AppRoutingModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}
  

SongFilesComponent:

 [...]
<div
  [uploader]="newFileUploader"
  (fileOver)="onFileOverNew($event)"
  [class.file-over]="fileOverNew"
>
  Drop file here
</div>
[...]
  

Но я всегда получаю описанную ошибку.
У меня есть второй простой тестовый проект, и загрузчик работает. Но я не могу найти никакой разницы между ними двумя.

Весь проект размещен на https://github.com/smuddy/wgenerator/tree/master/WEB

Комментарии:

1. замените <div> настоящим именем вашего компонента

2. хорошо, извините, я добавил SongFilesComponent в вопросе

Ответ №1:

Вам не хватает селектора компонента, который вы пытаетесь использовать (элемент DIV не является компонентом angular и не имеет никаких uploader входных данных).

Вам нужно заменить :

 [...]
<div
  [uploader]="newFileUploader"
  (fileOver)="onFileOverNew($event)"
  [class.file-over]="fileOverNew"
>
  Drop file here
</div>
[...]
  

Автор:

 [...]
<div ng2FileDrop
  [uploader]="newFileUploader"
  (fileOver)="onFileOverNew($event)"
  [class.file-over]="fileOverNew"
>
  Drop file here
</div>
[...]