问题
I am trying to use the editor control in primeng: https://www.primefaces.org/primeng/#/editor
But I am getting the error:
ERROR ReferenceError: Quill is not defined at Editor.webpackJsonp.../../../../primeng/components/editor/editor.js.Editor.ngAfterViewInit
My project uses:
- Angular Cli: 1.4.1
- Angular: 4.3.6
- NPM: 5.4.1
- Node: 6.10.0
- PrimeNG: 4.2.0
I found this issue: https://github.com/primefaces/primeng/issues/807
I followed the instructions:
import editor module
import {EditorModule} from 'primeng/primeng';
Install packages:
npm install quill --save
npm install @types/quill --save
Update angular-cli.json
"styles": [ "../node_modules/quill/dist/quill.core.css", "../node_modules/quill/dist/quill.snow.css", ], "scripts": [ "../node_modules/quill/dist/quill.js" ],
but it still has the same issue. I am just adding default markup:
<p-editor [(ngModel)]="text" [style]="{'height':'320px'}"></p-editor>
And I get the error and it looks like this:
The only thing on that thread I didn't try is installing the webpack plugin because I am using angular cli I don't think that is an option.
What can I try to fix this?
回答1:
Try This: it's working for me perfectly
Versions:
Node : 7.9.0
angular/cli: 1.3.0
angular: 4.3.6
npm: 4.2.0
primeng": "^4.2.0-rc.1"
install node module quill
npm install quill --save
.angular-cli.json
"styles": [
"../node_modules/primeng/resources/themes/omega/theme.css",
"../node_modules/primeng/resources/primeng.min.css",
"../node_modules/quill/dist/quill.core.css",
"../node_modules/quill/dist/quill.snow.css"
],
"scripts": [
"../node_modules/quill/dist/quill.js"
]
app.module.ts
import { EditorModule } from 'primeng/primeng';
@NgModule({
imports: [
EditorModule
]
})
app.component.html
<p-editor [(ngModel)]="text" [style]="{'height':'320px'}"></p-editor>
app.component.ts
export class AppComponent {
text: string;
}
回答2:
Resources of quill needs to be added to your application. Example setup with CLI is as follows;
npm install quill --save
Add Quill to scripts in angular.json
"scripts": [... "node_modules/quill/dist/quill.js"],
Add Quill css to styles in angular.json
"styles": [ ... "node_modules/quill/dist/quill.core.css",
"node_modules/quill/dist/quill.snow.css"],
I have checked this solution multiple times with new and existing projects, it works like charm :)
回答3:
I had the same problem and my solution was the following:
replace this:
import {EditorModule} from 'primeng/primeng';
for this:
import {ButtonModule} from 'primeng/button';
or
import {ButtonModule} from 'primeng/components/button/button';
This way you avoid import all components defined in primeng/primeng.js.
So if you are not using chart or editor modules then Chart.js or quill.js are not used and you can avoid to add this libraries in the bundle.
for more info: Github Issues
来源:https://stackoverflow.com/questions/46203041/primeng-error-quill-is-not-defined