Angular2 - Нет провайдера для TemplateRef (ng2-bootstrap)
Я пробовал несколько исправлений для этой ошибки, но не нашел подходящего способа преодолеть это: Нет провайдера для TemplateRef!
Журнал ошибок:
ИСКЛЮЧЕНИЕ: Недоступно (в обещании): Ошибка: ошибка. /FooterComponent class FooterComponent - встроенный шаблон: 15: 20, вызванный: Нет провайдера для TemplateRef! Ошибка: ошибка в классе. /FooterComponent FooterComponent - встроенный шаблон: 15: 20, вызванный: Нет провайдера для TemplateRef!
Отказ от необработанного обещания: ошибка в классе. /FooterComponent FooterComponent - встроенный шаблон: 15: 20, вызванный: Нет провайдера для TemplateRef!; Зона: angular; Задача: Promise.then; Значение:
footer.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'sa-footer',
templateUrl: './footer.component.html'
})
export class FooterComponent implements OnInit {
constructor() {}
ngOnInit() {}
}
footer.component.html
<div class="page-footer">
<div class="row">
<div class="col-xs-12 col-sm-6">
<span class="txt-color-white">myAPP © 2016</span>
</div>
<div class="col-xs-6 col-sm-6 text-right hidden-xs">
<div class="txt-color-white inline-block">
<i class="txt-color-blueLight hidden-mobile">Last account activity <i class="fa fa-clock-o"></i>
<strong>52 mins ago </strong> </i>
<div class="btn-group dropup" dropdown>
<button class="btn btn-xs dropdown-toggle bg-color-blue txt-color-white" dropdownToggle>
<i class="fa fa-link"></i> <span class="caret"></span>
</button>
<ul class="dropdown-menu pull-right text-left" dropdownMenu>
<li>
<div class="padding-5">
<p class="txt-color-darken font-sm no-margin">Download Progress</p>
<div class="progress progress-micro no-margin">
<div class="progress-bar progress-bar-success" style="width: 50%;"></div>
</div>
</div>
</li>
<li class="divider"></li>
<li>
<div class="padding-5">
<p class="txt-color-darken font-sm no-margin">Server Load</p>
<div class="progress progress-micro no-margin">
<div class="progress-bar progress-bar-success" style="width: 20%;"></div>
</div>
</div>
</li>
<li class="divider"></li>
<li>
<div class="padding-5">
<p class="txt-color-darken font-sm no-margin">Memory Load <span class="text-danger">*critical*</span>
</p>
<div class="progress progress-micro no-margin">
<div class="progress-bar progress-bar-danger" style="width: 70%;"></div>
</div>
</div>
</li>
<li class="divider"></li>
<li>
<div class="padding-5">
<button class="btn btn-block btn-default">refresh</button>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
Я попытался сделать следующее:
-
Исследование:
Но были найдены ответы/решения для шаблонов, которые фактически содержат некоторые директивы типа ngIf
, ngSwitch
и т.д. (Например, для забывания *
)
-
Добавьте TemplateRef
в providers
. Это то, что я получаю:
Аргумент типа '{selector: string; templateUrl: string; провайдеры: typeof TemplateRef []; } 'не присваивается параметру типа 'Компонент'. Типы собственности "провайдеры" несовместимы. Тип 'typeof TemplateRef []' не может быть присвоен типу 'Provider []'. Тип 'typeof TemplateRef' не присваивается типу 'Provider'. Тип 'typeof TemplateRef' не присваивается типу 'FactoryProvider'. Свойство 'обеспечить' отсутствует в типе typeof TemplateRef '.
Я попытаюсь посмотреть, как добавить как-то TemplateRef
в модуль приложения providers
. Но я не знаю, является ли это решением.
Я надеюсь, что кто-то выйдет с решением, пока я продолжаю исследовать.
Спасибо!: D
Ответы
Ответ 1
Исследование: Но нашли ответы/решения для шаблонов, которые фактически содержат некоторые директивы, такие как ngIf, ngSwitch и т.д. (например, для забывания *)
отсутствует *
здесь:
<ul class="dropdown-menu pull-right text-left" dropdownMenu>
должен быть
<ul class="dropdown-menu pull-right text-left" *dropdownMenu>
От ng2-bootstrap:
<div class="btn-group" dropdown>
<button dropdownToggle type="button" class="btn btn-primary dropdown-toggle">
Button dropdown <span class="caret"></span>
</button>
<ul *dropdownMenu class="dropdown-menu" role="menu">
<li role="menuitem"><a class="dropdown-item" href="#">Action</a></li>
<li role="menuitem"><a class="dropdown-item" href="#">Another action</a></li>
<li role="menuitem"><a class="dropdown-item" href="#">Something else here</a></li>
<li class="divider dropdown-divider"></li>
<li role="menuitem"><a class="dropdown-item" href="#">Separated link</a>
</li>
</ul>
</div>