带有html的angular-tree-component样式节点

问题描述 投票:2回答:2

我使用角5和角树组件https://github.com/500tech/angular-tree-component。我想设置一个与其他节点不同的节点

import { Component, ViewChild} from '@angular/core';
import { TreeComponent } from 'angular-tree-component';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
})
export class AppComponent {

  @ViewChild('myTree')
  private tree: TreeComponent;

  nodes = [
    {
      id: 1,
      name: 'root1',
      children: [
        { id: 2, name: '<b>child1</b>' },
        { id: 3, name: 'child2' }
      ]
    }
  ];
}

所以问题是,b标签通过角度对\lt b \gt \lt b \gt进行消毒。

我怎样才能在角度上实用地生成HTML?

angular
2个回答
6
投票

您可以定义自定义treeNodeTemplate。这将允许您向每个节点模板添加自定义类。

<tree-root [nodes]="nodes" [options]="options">
  <ng-template #treeNodeTemplate let-node let-index="index">
    <span [ngClass]="node.data.classes">{{ node.data.name }}</span>
  </ng-template>
</tree-root>

然后将您的css类传递给节点数据

nodes = [
  {
    id: 1,
    name: 'root1',
    classes: ['text-bold'],
    children: [...]
  }
];

最后定义该类

.text-bold{
  font-weight: 700;
}

您还可以更新模板以仅使用innerHTML指令,以便您可以将html传递给name属性。

<ng-template #treeNodeTemplate let-node let-index="index">
  <span [innerHTML]="node.data.name"></span>
</ng-template>

0
投票

一定要深入应用ng

SCSS

/deep/ {
  .tree-wrapper {
    .tree-children {
      padding-left: 5px;
    }
  }
}

HTML

<div class="tree-wrapper">
    <tree-root
      [nodes]="menuItems | async | tableFilter: [menuFilterTerm]"
      [options]="options"
      (activate)="onSelectMenuItem($event)"
    >
    </tree-root>
  </div>
© www.soinside.com 2019 - 2024. All rights reserved.