Angular
Angular components for Uppy UI plugins.
When should I use it?
When you are using the Angular framework and you would like to use one of the UI components.
Install
- NPM
- Yarn
npm install @uppy/angular
yarn add @uppy/angular
You also need to install the UI plugin you want to use. For instance,
@uppy/dashboard.
Use
Instead of adding a UI plugin to an Uppy instance with .use(), the Uppy
instance can be passed into components as a props prop.
The following plugins are available as Angular component wrappers:
- Import
UppyAngularDashboardModuleused as<uppy-dashboard>renders@uppy/dashboard - Import
UppyAngularDashboardModalModuleused as<uppy-dashboard-modal>renders@uppy/dashboardas a modal - Import
UppyAngularProgressBarModuleused as<uppy-progress-bar>renders@uppy/progress-bar- Removed in Uppy 5.0 - Import
UppyAngularStatusBarModuleused as<uppy-status-bar>renders@uppy/status-bar - Import
UppyAngularDragDropModuleused as<uppy-drag-drop>renders@uppy/drag-drop- Removed in favor of Dropzone and useDropzone in Uppy 5.0
Each component takes a props prop that will be passed to the UI Plugin.
import { NgModule } from '@angular/core';
import { UppyAngularDashboardModule } from '@uppy/angular';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, UppyAngularDashboardModule],
providers: [],
bootstrap: [AppComponent],
})
class {}
<uppy-dashboard [uppy]="uppy"> </uppy-dashboard>
You should initialize Uppy as a property of your component.
import { Component } from '@angular/core';
import { Uppy } from '@uppy/core';
@Component({
selector: 'app-root',
})
export class AppComponent {
uppy: Uppy = new Uppy({ debug: true, autoProceed: true });
}
CSS
All components have their own styling and should be added to your component
decorator. You can find the CSS import statements in the docs of the UI plugin
you want to use. For instance, for @uppy/dashboard:
import { Component, ViewEncapsulation } from '@angular/core';
//...
@Component({
// ...
encapsulation: ViewEncapsulation.None,
styleUrls: [
'../node_modules/@uppy/core/css/style.css',
'../node_modules/@uppy/dashboard/css/style.css',
],
})