primeng p-menubar 示例不起作用

Posted

技术标签:

【中文标题】primeng p-menubar 示例不起作用【英文标题】:primeng p-menubar example not working 【发布时间】:2018-03-07 23:44:37 【问题描述】:

我收到以下错误。它告诉我它无法绑定“模型”,因为“p-menubar”不知道它。

我对 angular 和 primeng 很陌生。有人可以帮我吗?

错误:模板解析错误: 无法绑定到“模型”,因为它不是“p-menubar”的已知属性。 1. 如果 'p-menubar' 是一个 Angular 组件并且它有 'model' 输入,那么验证它是这个模块的一部分。 2. 如果“p-menubar”是一个 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。 3. 要允许任何属性,请将“NO_ERRORS_SCHEMA”添加到该组件的“@NgModule.schemas”。 (" ][型号]="项目"> "): ng:///AppModule/AppComponent.html@1:23 'p-menubar' 不是已知元素: 1. 如果“p-menubar”是一个 Angular 组件,那么验证它是这个模块的一部分。 2. 如果“p-menubar”是一个 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。 (" [错误->] "): ng:///AppModule/AppComponent.html@1:12 评估http://localhost:3000/main.js 加载 main.js 堆栈跟踪: 语法错误@http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:1729:34 TemplateParser.prototype.parse@http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:12967:19 JitCompiler.prototype._compileTemplate@http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:27161:18 JitCompiler.prototype._compileComponents/http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:27080:56 JitCompiler.prototype._compileComponents@http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:27080:9 JitCompiler.prototype._compileModuleAndComponents/http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:26967:13 那么@http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:1718:92 JitCompiler.prototype._compileModuleAndComponents@http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:26966:16 JitCompiler.prototype.compileModuleAsync@http://localhost:3000/node_modules/@angular/compiler/bundles/compiler.umd.js:26895:32 PlatformRef_.prototype._bootstrapModuleWithZone@http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:4568:16 PlatformRef_.prototype.bootstrapModule@http://localhost:3000/node_modules/@angular/core/bundles/core.umd.js:4554:16 @http://localhost:3000/main.js:4:1 @http://localhost:3000/main.js:1:31 @http://localhost:3000/main.js:1:2 评估@http://localhost:3000/node_modules/systemjs/dist/system.src.js:2843:8 translateAndInstantiate/http://localhost:3000/node_modules/systemjs/dist/system.src.js:3608:21 动态执行@http://localhost:3000/node_modules/systemjs/dist/system.src.js:1166:18 评估@http://localhost:3000/node_modules/systemjs/dist/system.src.js:1113:13 确保评估@http://localhost:3000/node_modules/systemjs/dist/system.src.js:1022:13 RegisterLoader$1.prototype[Loader.resolveInstantiate]/http://localhost:3000/node_modules/systemjs/dist/system.src.js:612:14 ZoneDelegate.prototype.invoke@http://localhost:3000/node_modules/zone.js/dist/zone.js:392:17 Zone.prototype.run@http://localhost:3000/node_modules/zone.js/dist/zone.js:142:24 scheduleResolveOrReject/http://localhost:3000/node_modules/zone.js/dist/zone.js:844:52 ZoneDelegate.prototype.invokeTask@http://localhost:3000/node_modules/zone.js/dist/zone.js:425:17 Zone.prototype.runTask@http://localhost:3000/node_modules/zone.js/dist/zone.js:192:28 drainMicroTaskQueue@http://localhost:3000/node_modules/zone.js/dist/zone.js:602:25 k/http://localhost:3000/node_modules/core-js/client/shim.min.js:8:31581 k/http://localhost:3000/node_modules/core-js/client/shim.min.js:8:31451 s@http://localhost:3000/node_modules/core-js/client/shim.min.js:7:25990 本地主机:3000:22:53

这是 app.component.ts 代码:

    import  Component  from '@angular/core';
import  MenubarModule, MenuItem  from 'primeng/primeng';

@Component(
  selector: 'my-app',
  template: `
            <p-menubar [model]="items">
                <input type="text" pInputText placeholder="Search">
                <button pButton label="Logout" icon="fa-sign-out"></button>
            </p-menubar>
  `
//   templateUrl: './app/app.component.html'
)
export class AppComponent  

    items: MenuItem[];

    ngOnInit() 
        this.items = [
            
                label: 'File',
                items: [
                        label: 'New', 
                        icon: 'fa-plus',
                        items: [
                            label: 'Project',
                            label: 'Other',
                        ]
                    ,
                    label: 'Open',
                    label: 'Quit'
                ]
            ,
            
                label: 'Edit',
                icon: 'fa-edit',
                items: [
                    label: 'Undo', icon: 'fa-mail-forward',
                    label: 'Redo', icon: 'fa-mail-reply'
                ]
            
        ];
    

这是 app.module.ts:

    import  NgModule       from '@angular/core';
import  BrowserModule  from '@angular/platform-browser';
import  AppComponent   from './app.component';

@NgModule(
  imports:      [ BrowserModule],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
)
export class AppModule  

【问题讨论】:

【参考方案1】:

我发现了问题。 “从 'primeng/primeng' 导入 MenubarModule, MenuItem ;”需要在 app.module.ts 中,而不是在 app.component.ts 中。

【讨论】:

以上是关于primeng p-menubar 示例不起作用的主要内容,如果未能解决你的问题,请参考以下文章

p-menuitem 不是已知元素 - primeng

primeNG 预设值不起作用,它显示为 [object object]

如何使PrimeNG菜单栏组件起作用?

粘性标题不适用于 Primeng 中可调整大小的列。?

隐藏带有条件的 Primeng 上下文菜单

这个简单的 PrimeNG Angular 2 示例究竟是如何工作的?