Я только что изучил использование Transluction
в angular2
из этого урока:
https://scotch.io/tutorials/angular-2-transclusion-using-ng-content
Я смог использовать тег <ng-content>
для некоторого контента, например:
<ng-content select="[my-block-header]"></ng-content>
и лежит он в компоненте, к которому прикреплен селектор my-block
.
Он отображает содержимое из другого моего компонента как:
<my-block>
<div class="box-header" my-block-header> <--added the slot selector here
<h3 class="box-title">
My title
</h3>
</div>
</my-block>
Проблема в следующем:
Можно ли добавить в блок <ng-content>
значение по умолчанию, которое можно было бы использовать, если бы мы не передавали никакого значения?
На данный момент, если значение не передано, на его месте будет пустая страница.
Изменить:
Когда я пытался протестировать, была более новая версия zone.js
, которая не позволяла отображать правильную ошибку, поэтому я получал ошибку как:
Cannot set property 'stack' of undefined ; Zone: <root> ;
Task: Promise.then ; Value: TypeError: Cannot set property 'stack' of undefined
Но когда я изменил версию zone.js
на 0.7.2
, ошибка была четко указана в консоли как:
zone.js:392 Unhandled Promise rejection: Template parse errors:
<ng-content> element cannot have content.
Итак, это подтверждает, что не может быть значения по умолчанию, равного <ng-content>
.