RE ДУБЛИКАТ: «Этот вопрос был задан до и уже есть ответ.»Использование содержание шаблона компонента в угловом 2
Так что этот вопрос был спросил 10 дней после я спросил его? Кто-то не знает, как читать метки времени.
я борюсь с угловыми 2 затрудняя или даже невозможно сделать то, что было тривиальным в угловых 1, особенно без тонны лишнего кода и/или узлов DOM. :(
В Angular 1 У меня был контроль запроса, который выполнял сложную обработку нажатий клавиш в окне ввода и динамически отображал результаты в выпадающем списке. Элементы, которые искали, могли быть любого типа, а элементы выпадающего списка могли бы быть . простые строки или сложные встроенные шаблоны
Например, я мог бы использовать это запрос список объектов пользователя и отображать их с помощью шаблона по умолчанию (например, toString
):
<search-box [query-provider]='userFinder'> </search-box>
Где-то еще у меня есть подобный поиск , но я хочу, чтобы результирующий список содержал более богатый обзор каждого пользователя, поэтому я предоставляю emplate рядный, как ребенок поисковой коробки:
<search-box [query-provider]='userFinder'>
<!-- this is used as a template for each result item in the
dropdown list, with `result` bound to the result item. -->
<div>
<span class='userName'>result.name</span>
<span class='userAge'>result.age</span>
<address [model]='result.address'><address>
</div>
</search-box>
Моя реализации поиск поля необходимо определить, есть ли содержание ребенка использовать в качестве шаблона и использовать его в правильном месте в поисково- box шаблон.
@Component({
select: 'search-box',
template: `
<div somestuff here>
<input morestuff here>
<ul this is where my dropdown items will go>
<li *ng-for="#item of model.listItems"
TEMPLATE FOR ITEMS SHOULD GO HERE
</li>
</ul>
</div>`
...
С угловыми 1 я мог легко transclude шаблон ребенка к этому месту и привязать его к соответствующему объема, или я мог бы динамически скомпилирован шаблон. Я не могу заставить это работать в Angular 2 вообще.
Если я использую <ng-content>
, оно появляется только в первом <li>
.
у вас есть плункер для того же? – micronyks