我目前正在测试角度为2的primeng,我想创建一个简单的菜单。
这是我的代码:
import {Component, OnInit} from '@angular/core';
import {Menu, MenuItem} from 'primeng/primeng';
@Component({
templateUrl: 'app/salaries/menudroite.html',
selector: 'menu-droite',
providers: [],
directives: [Menu]
})
export class menuDroiteComponent implements OnInit {
private items: MenuItem[];
ngOnInit() {
this.items = [{
label: 'File',
items: [
{label: 'New', icon: 'fa-plus'},
{label: 'Open', icon: 'fa-download'}
]
},
{
label: 'Edit',
items: [
{label: 'Undo', icon: 'fa-refresh'},
{label: 'Redo', icon: 'fa-repeat'}
]
}];
}
}
和html代码
<h4>Menu droite</h4>
<p-menu [model]="items"></p-menu>
当我启动网站时,没有任何显示。如果我删除html中的“p-menu”行,我会看到“h4”......
我做错了什么?
答案 0 :(得分:0)
很可能你在指令列表中缺少列表menuitem
,如下所示:
directives: [Menu, MenuItem]
api的核心是MenuItem类,它定义了各种选项,例如菜单中项目的标签,图标和子项。
所以你必须在指令列表中添加MenuItem。
答案 1 :(得分:0)
我一直在努力解决相同的情况,我只是无法从primeng / primeng导入MenuItem,我在primeng / common文件夹中找到了接口,但是现在我只声明了以下内容。
private items: any[];
就是这样。
答案 2 :(得分:0)
所以我的工作
<p-menu #menu popup="popup" [model]="items"></p-menu>
然后ts文件如下,只需查看导入和onInit
import { Component, OnInit } from '@angular/core';
import { MenuItem } from 'primeng/primeng';
import { ServiceLocatorService } from '../../commonComponents/service/serviceLocator.service';
@Component({
selector: 'productAdmin',
template: require('./app.component.html'),
styles: [require('./app.component.css')]
})
export class AppComponent {
items: MenuItem[];
constructor(private locator: ServiceLocatorService) {
var url: string = location.origin;
this.locator.setUrl(url);
}
ngOnInit() {
this.items = [
{ label: 'Product Definition', routerLink: ['/productSetup']},
{ label: 'Base Product Pricing', routerLink: ['/productPricing'] },
{ label: 'Base Option Pricing', routerLink: ['/optionPricing']}
];
}
}