Angular PrimeNG树的拖放

Angular PrimeNG树的拖放

Angular PrimeNG是一个开源框架,拥有丰富的原生Angular UI组件,可用于出色的造型,该框架可用于制作响应式网站,非常方便。在这篇文章中,我们将看到Angular PrimeNG树形拖放。

树形组件用于向用户提供分层的数据。树的节点可以被重新排序,也可以被转移到另一棵树上。通过将树的draggableNodes属性设置为 “true”,可以从树上拖动,通过将droppableNodes属性设置为 “true”,可以实现拖放。树的拖放需要将TreeDragDropService配置为提供者。

语法:

<p-tree 
    [value]="..."
    [draggableNodes]="true"
    [droppableNodes]="true">
</p-tree>

创建Angular应用程序并安装模块:

第1步:使用以下命令创建一个Angular应用程序。

ng new myapp

第2步:创建你的项目文件夹即myapp后,使用以下命令移动到它。

cd myapp

步骤3:在你给定的目录中安装PrimeNG。

npm install primeng --save
npm install primeicons --save

项目结构:完成上述步骤后,项目结构将如下所示。

Angular PrimeNG树的拖放

Project Structure

例子1:在这个例子中,我们使用draggableNodes和droppableNodes属性启用了树中的拖放。

<div style="text-align: center">
    <h2 style="color: green">GeeksforGeeks</h2>
    <h4>Angular PrimeNG Tree Drag and Drop</h4>
  
    <p-tree 
        [value]="nodes"
        [draggableNodes]="true"
        [droppableNodes]="true">
    </p-tree>
</div>
import { Component } from '@angular/core';
import { TreeNode } from 'primeng/api';
import { NodeService } from './nodeservice';
import { TreeDragDropService } from 'primeng/api';
  
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    providers: [TreeDragDropService]
})
  
export class AppComponent {
    constructor(private nodeService: NodeService) { }
    nodes: TreeNode[] = [];
  
    ngOnInit() {
          
        this.nodes = [
            {
                label: 'Files',
                icon: 'pi pi-folder',
  
                children: [
                    {
                        label: 'Office',
                        icon: 'pi pi-folder',
  
                        children: [
                            {
                                label: 'MS Excel',
                                icon: 'pi pi-folder',
                            },
                            {
                                label: 'MS Word',
                                icon: 'pi pi-folder',
                            },
                        ],
                    },
                    {
                        label: 'Home',
                        icon: 'pi pi-folder',
  
                        children: [
                            {
                                label: 'Movies',
                                icon: 'pi pi-folder',
                            },
                        ],
                    },
                ],
            },
            {
                label: 'Docs',
                icon: 'pi pi-folder',
  
                children: [
                    {
                        label: 'Academic',
                        icon: 'pi pi-folder',
                    },
                    {
                        label: 'Loans',
                        icon: 'pi pi-folder',
                    },
                    {
                        label: 'Investments',
                        icon: 'pi pi-folder',
                    },
                ],
            },
        ];
    }
}
import { NgModule } from '@angular/core';
import { BrowserModule } 
    from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpClientModule }
    from '@angular/common/http';
import { BrowserAnimationsModule }
    from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { NodeService } from './nodeservice';
import { TreeModule } from 'primeng/tree';
import { ButtonModule } from 'primeng/button';
  
@NgModule({
    imports: [
        BrowserModule,
        BrowserAnimationsModule,
        TreeModule,
        ButtonModule,
        HttpClientModule,
        FormsModule,
    ],
    declarations: [AppComponent],
    bootstrap: [AppComponent],
    providers: [NodeService],
})
export class AppModule { }

输出:

Angular PrimeNG树的拖放

例子2:在这个例子中,我们把节点从一棵树拖到另一棵树。

<div style="text-align: center">
    <h2 style="color: green">GeeksforGeeks</h2>
    <h4>Angular PrimeNG Tree Drag and Drop</h4>
  
    <p>First Tree:</p>
    <p-tree 
        [value]="nodes"
        [draggableNodes]="true"
        [droppableNodes]="true">
    </p-tree>
  
    <p class="mt-5">Second Tree:</p>
    <p-tree 
        [value]="nodes2"
        [draggableNodes]="true"
        [droppableNodes]="true">
    </p-tree>
</div>
import { Component } from '@angular/core';
import { TreeNode } from 'primeng/api';
import { NodeService } from './nodeservice';
import { TreeDragDropService } from 'primeng/api';
  
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    providers: [TreeDragDropService]
})
  
export class AppComponent {
    constructor(private nodeService: NodeService) { }
    nodes: TreeNode[] = [];
    nodes2: TreeNode[] = [];
  
    ngOnInit() {
          
        this.nodes = [
            {
                label: 'Files',
                icon: 'pi pi-folder',
  
                children: [
                    {
                        label: 'Office',
                        icon: 'pi pi-folder',
  
                        children: [
                            {
                                label: 'MS Excel',
                                icon: 'pi pi-folder',
                            },
                            {
                                label: 'MS Word',
                                icon: 'pi pi-folder',
                            },
                        ],
                    },
                    {
                        label: 'Home',
                        icon: 'pi pi-folder',
  
                        children: [
                            {
                                label: 'Movies',
                                icon: 'pi pi-folder',
                            },
                        ],
                    },
                ],
            },
            {
                label: 'Docs',
                icon: 'pi pi-folder',
  
                children: [
                    {
                        label: 'Academic',
                        icon: 'pi pi-folder',
                    },
                    {
                        label: 'Loans',
                        icon: 'pi pi-folder',
                    },
                    {
                        label: 'Investments',
                        icon: 'pi pi-folder',
                    },
                ],
            },
        ];
  
  
        this.nodes2 = [
            {
                label: 'Topics',
                icon: 'pi pi-folder',
  
                children: [
                    {
                        label: 'Graphs',
                        icon: 'pi pi-folder',
                    },
                    {
                        label: 'Linked List',
                        icon: 'pi pi-folder',
                    },
                ],
            },
            {
                label: 'Courses',
                icon: 'pi pi-folder',
  
                children: [
                    {
                        label: 'DSA',
                        icon: 'pi pi-folder',
                    },
                    {
                        label: 'GATE',
                        icon: 'pi pi-folder',
                    },
                    {
                        label: 'DBMS',
                        icon: 'pi pi-folder',
                    },
                ],
            },
        ];
    }
}
import { NgModule } from '@angular/core';
import { BrowserModule } 
    from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpClientModule }
    from '@angular/common/http';
import { BrowserAnimationsModule }
    from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { NodeService } from './nodeservice';
import { TreeModule } from 'primeng/tree';
import { ButtonModule } from 'primeng/button';
  
@NgModule({
    imports: [
        BrowserModule,
        BrowserAnimationsModule,
        TreeModule,
        ButtonModule,
        HttpClientModule,
        FormsModule,
    ],
    declarations: [AppComponent],
    bootstrap: [AppComponent],
    providers: [NodeService],
})
export class AppModule { }

输出:

Angular PrimeNG树的拖放

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程