W kątowa 2, SVG-rect jest elementem, który tworzy rect jak poniżej,Usuń przyjmującego elementu HTML selektorów stworzone przez kątowej komponentu
<svg height="550" width="450" x="0" y="0">
<g id="svgGroup">
<svg-rect>
<!--template bindings={}-->
<rect x="10" y="10" height="100" width="100" fill="red" stroke="#000" stroke-width="2"></rect>
<!--template bindings={}-->
</svg-rect>
<svg-rect>
<!--template bindings={}-->
<rect x="10" y="10" height="100" width="100" fill="red" stroke="#000" stroke-width="2"></rect>
<!--template bindings={}-->
</svg-rect>
</g>
</svg>
ale to nie uczyni rect ponieważ utworzonych specjalnych tagów elementów. Jeśli SVG-rect znaczniki są usuwane to czyni Rect
<svg height="550" width="450" x="0" y="0">
<g id="svgGroup">
<!--template bindings={}-->
<rect x="10" y="10" height="100" width="100" fill="red" stroke="#000" stroke-width="2"></rect>
<!--template bindings={}-->
<!--template bindings={}-->
<rect x="10" y="10" height="100" width="100" fill="red" stroke="#000" stroke-width="2"></rect>
<!--template bindings={}-->
</g>
</svg>
kątowej 1.x, jest wymienić: 'true' który usuwa znaczniki dyrektywy ze skompilowanej wyjścia. Czy możemy to samo wdrożyć w angular2?
Działa to dobrze wszędzie tam, gdzie potrzebny jest prawidłowy element, właśnie użyłem tego dla małego komponentu dla nagłówków tabeli
@David - Nie znajdziesz go w podręcznikach (jeszcze), ale aby zapewnić, że jest błogosławiony: Oto wątek, w którym użytkownicy robią przypadek, że czasami (svg i tabele) musisz użyć selektorów atrybutu do modyfikowania struktury : https://github.com/angular/angular/issues/11280. W odpowiedzi, funkcjonalność została dodana (dobrze, przywrócona, faktycznie) tutaj: https://github.com/angular/angular/pull/11808. –
, ale co jeśli chcę dodać wiele elementów w jednym elemencie (ręcznie, nie przez * ngFor) –
Marcel
Cytując Angular 1 to Angular 2 Upgrade Strategy doc:
Źródło
2015-12-15 03:25:32
Inne podejście do usuwania hosta komponentu, którego używam.
dyrektywa
remove-host
Korzystanie z niniejszej dyrektywy;
<avatar [name]="hero.name" remove-host></avatar>
w dyrektywie
remove-host
wszystkie dzieci znativeElement
umieszczane przed przyjmującego, a następnie element gospodarza usunięto.Sample Example Gist
Na podstawie przypadku użycia może wystąpić kilka problemów z wydajnością.
Źródło
2016-03-07 06:04:48 Bhavik
Może to być problem z wydajnością, to jest to, co myślałem na początku. Ale obecnie wykorzystuję ten sposób w moim materialnym projekcie lekkie komponenty do zastąpienia elementu hosta, w przeciwnym razie problemy z wyświetlaniem html – Kuncevic
@Kuncevich Dobrze wiedzieć, że moja odpowiedź pomogła, wąskie gardła wydajności zostaną utworzone, gdy element 'ChangeDetection' zostanie wywołany jako' shadow DOM! == rzeczywisty DOM'. Ale jeśli nie ma wielu elementów, to nie byłoby to tak duże. Mamy nadzieję, że;) – Bhavik
Potrzebujemy jakiejś analogii do Angular1 'replace: true' http://stackoverflow.com/questions/22497706/angular-directive-replace-true Ktoś powiedział, że ta właściwość jest w rzeczywistości kątowa2, ale nieoficjalnie obsługiwana. – Kuncevic
Istnieje inne podejście, które pozwala uzyskać szablon elementu ze składnika.
Najpierw tworzymy komponent, którego tag mamy nadzieję usunąć z przeglądarki renderowanie
Następnie w szablonie innego komponentu, piszemy (nie starają się usunąć tag tutaj.):
Następnie musimy w coś podobnego przeglądarki to:
Więc przyniosły
<p>{{value}}</p>
z TlNoTagComponent .<tl-no-tag></tl-no-tag>
będzie nadal tam być, ale nie będzie blokować żadnych plików css lub svg.Źródło
2016-12-30 08:37:46 Timathon
"Czy szablon ma własny oddzielny zakres zmiennych, jakie zmienne może zobaczyć szablon?" Sprawdź ten (w części Zawartość szablonu): https://blog.angular-university.io/angular-ng-template-ng-container-ngtemplateoutlet/ – Timathon
Powiązane problemy