p-меню не отображается

angular primeng

1547 просмотра

3 ответа

15 Репутация автора

В настоящее время я тестирую primeng с angular 2 и хочу создать простое меню.

Вот мой код:

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>

Когда я запускаю сайт, ничего не появляется. Если я удаляю строку «p-menu» в html, я вижу «h4» ...

Что я делаю неправильно ?

Автор: Vincent Caron Источник Размещён: 19.07.2016 07:54

Ответы (3)


0 плюса

50213 Репутация автора

Скорее всего, вам не хватает списка внизу menuitemв списке директив, сделайте так:

 directives: [Menu, MenuItem]

Согласно документации здесь

Ядром API является класс MenuItem, который определяет различные параметры, такие как метка, значок и дочерние элементы элемента в меню.

поэтому вы должны добавить MenuItem в список директив.

Автор: Pardeep Jain Размещён: 27.07.2016 06:54

0 плюса

100 Репутация автора

Я боролся с той же ситуацией, я просто не могу импортировать MenuItem из primeng / primeng, я нашел интерфейс в папке primeng / common, но сейчас я только что объявил следующее.

private items: any[];

Это оно.

Автор: uajov6 Размещён: 13.10.2016 04:26

0 плюса

71 Репутация автора

так что мой работает с

<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']}
            ];
    }
}
Автор: Buckrogerz Размещён: 11.01.2018 09:15
Вопросы из категории :
32x32