3

我正在使用带有 Angular RC 2.0.0-rc.1 版本的 PrimeNG (1.0.0-beta.5) PanelMenu

下面是 PrimeNG 面板菜单的示例代码。当我单击ProjectWelcome链接时,它会刷新我的整个页面,然后加载相应的组件。

<p-panelMenu id="panelMenu">
    <div>
        <div><a data-icon="fa-file-o"><span>Report</span></a></div>
        <div>
            <ul>
                <li><a data-icon="fa-plus"><span>New</span></a>
                    <ul>
                        <li><a [routerLink]="['Project']" (click)="mobileMenuActive = false">Project</a></li>
                        <li><a [routerLink]="['Welcome']" (click)="mobileMenuActive = false">Welcome</a></li>
                    </ul>
                </li>
                <li><a [routerLink]="['Project']">Project</a></li>
                <li><a><span>Quit</span></a></li>
            </ul>
        </div>
    </div>
</p-panelMenu>

每当我使用如下所示的导航元素时,它都会正确调用相应的组件而无需刷新页面。

<nav>
            <div class='container-fluid'>
                <ul class='nav navbar-nav'>
                    <li><a [routerLink]="['Welcome']">Home</a></li>
                    <li><a [routerLink]="['Project']">Product List</a></li>
                </ul>
            </div>
</nav>

知道我在 primeNG 面板菜单实现中缺少什么吗?

干杯 Sanket

4

5 回答 5

3

我正在使用primeng beta.6 版本,仍然有这个问题。当我从菜单(不仅仅是路由器插座区域)导航时,整个页面都会刷新。

HTML:

<p-tabMenu class="ui-tabmenu" [model]="items"></p-tabMenu>

TS:

ngOnInit() {
        this.items = [    
           { label: 'Notes', icon: 'fa-file-o', url: ['Page1'] },
            { label: 'Companies', icon: 'fa-edit', url: ['Page2'] },
            { label: 'Google', icon: 'fa-plus', url: 'http://www.google.com' }
        ];
    }

我只想刷新视图区域而不刷新菜单。这仍然是 beta.6 中的问题吗?

于 2016-05-19T15:26:11.713 回答
2

你有几种使用它的方法。

第一次设置面板菜单:

//HTML
<p-panelMenu [model]="items"></p-panelMenu>

然后在你的.ts文件中:

items: MenuItem[] = [];

ngOnInit() {
    this.items = [
        {
            label: 'Users',
            url:"/users" //<<<-------- This will reload the page and go /users
        },
        {
            label: 'Profile',
            routerLink:"/profile" //<<<-------- This works the same way as <a routerLink="/profile">Profile</a>
        },
        {
            label: 'Command',
            command:(click)=>{this.router.navigate(['/command']);} //<<<-------- Will not reload the page
        }
    ]
}

以下是对其工作原理的一些解释:

  • url => 这用于外部导航(外部链接),使用时重新加载页面的原因;

  • routerLink => 它的行为类似于 angular routerLink

  • command => 它用于在单击项目时调用函数。你可以在这里阅读更多

于 2021-05-26T20:18:23.670 回答
1

请参阅主要社区 http://forum.primefaces.org/viewtopic.php?f=35&t=45504上的此线程

于 2016-05-19T08:09:07.687 回答
0

[multiple]="false" 有帮助

<p-panelMenu [model]="menuItems" [multiple]="false"></p-panelMenu>

于 2018-08-14T08:25:16.967 回答
0

另外,请查看此处提供的解决方案 - https://stackoverflow.com/a/39000508/9943363。它对我有用。

解决方案:确保将 RouterLink 用作数组,其中包含表示文件路径的字符串 - routerLink:['\test\']

于 2018-07-06T15:24:59.747 回答