Простой способ обнаружить щелчок за пределами дочернего компонента

Использование scala:

import xml._
val xml = XML.loadString("<tag><nested>hello</nested></tag>")
val formatted = new PrettyPrinter(150, 2).format(xml)
println(formatted)

Вы можете сделать это и на Java, если вы зависите от scala-library.jar. Это выглядит так:

import scala.xml.*;

public class FormatXML {
    public static void main(String[] args) {
        String unformattedXml = "<tag><nested>hello</nested></tag>";
        PrettyPrinter pp = new PrettyPrinter(150, 3);
        String formatted = pp.format(XML.loadString(unformattedXml), TopScope$.MODULE$);
        System.out.println(formatted);
    }
}

Объект PrettyPrinter сконструирован с двумя ints, первая - макс длина строки, а вторая - шаг отступа.

1
задан physicsboy 6 March 2019 в 14:35
поделиться

1 ответ

Проблема в том, что ваш обработчик щелчков устанавливает значение expanded в значение , а затем обработчик событий щелчка документа устанавливает его в значение false, поэтому всегда ложно.

Вы можете установить значение false только в том случае, если целью события не является ваш компонент:

https://stackblitz.com/edit/mouse-click-anywhere-8bwg6p?file=src/ app / hello.component.ts

  @HostListener('document:click', ['$event'])
  documentClick(event: MouseEvent) {
    console.log('clicked');
    console.log(event);
    if (event.target.id !== 'box') {
      this.isEnlarged = false;
    }
  }
0
ответ дан ritaj 6 March 2019 в 14:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: