ホームページ >ウェブフロントエンド >jsチュートリアル >angular6 は ngContentOutlet を使用してコンポーネントの位置交換を実装する方法 (コード例)

angular6 は ngContentOutlet を使用してコンポーネントの位置交換を実装する方法 (コード例)

不言
不言転載
2018-11-21 11:57:502300ブラウズ

この記事の内容は、angular6 が ngContentOutlet を使用してコンポーネントの位置交換を実装する方法に関するものです (コード例)。必要な方は参考にしていただければ幸いです。

ngContentOutlet ディレクティブの概要

ngContentOutlet ディレクティブは ngTemplateOutlet ディレクティブに似ており、どちらも動的コンポーネントに使用されます。違いは、前者はコンポーネントを渡し、後者はコンポーネントを渡すことです。 TemplateRef 内。

最初に使用法を見てみましょう:

MyComponent はカスタム コンポーネントです。この命令により、コンポーネント ファクトリが自動的に作成され、ng-container にビューが作成されます。

コンポーネントの位置交換を実現する

Angular のビューはデータにバインドされており、HTML DOM 要素を直接操作することは推奨されません。データを操作してコンポーネント ビューを変更することをお勧めします。

最初に 2 つのコンポーネントを定義します。

button.component.ts

import { Component, OnInit } from '@angular/core';
@Component({
 selector: 'app-button',
 template: `<button>按钮</button>`,
 styleUrls: ['./button.component.css']
})
export class ButtonComponent implements OnInit {
 constructor() { }
 ngOnInit() {

text.component.ts

import { Component, OnInit, Input } from '@angular/core';
@Component({
 selector: 'app-text',
 template: `
 <label for="">{{textName}}</label>
 <input type="text">
 `,
 styleUrls: ['./text.component.css']
})
export class TextComponent implements OnInit {
 @Input() public textName = 'null';
 constructor() { }
 ngOnInit() {
 }
}

上記の 2 つのコンポーネントを動的に作成して実装します。位置交換機能。

コンポーネントを動的に作成して位置交換を実装する

まず、上で作成した 2 つのコンポーネント ButtonComponent と TextComponent を格納する配列を作成します。位置を交換する場合は、配列内のコンポーネントを交換するだけです。の位置、コードは次のとおりです:

import { TextComponent } from './text/text.component';
import { ButtonComponent } from './button/button.component';
import { Component } from '@angular/core';
@Component({
 selector: 'app-root',
 template: `
 <ng-container *ngFor="let item of componentArr" >
  <ng-container *ngComponentOutlet="item"></ng-container>
 </ng-container>
 <br>
 <button (click)="swap()">swap</button>
`,
 styleUrls: ['./app.component.css']
})
export class AppComponent {
 public componentArr = [TextComponent, ButtonComponent];
 constructor() {
 }
 public swap() {
  const temp = this.componentArr[0];
  this.componentArr[0] = this.componentArr[1];
  this.componentArr[1] = temp;
 }
}

以上がangular6 は ngContentOutlet を使用してコンポーネントの位置交換を実装する方法 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。