Ошибка
ошибки шаблона синтаксического анализа:
Невозможно привязать к «времени дельта», поскольку он не является известным свойством «р».Пользовательские Угловое 2 директива не работает
Решение в документации
Я должен добавить директиву деклараций массива. Я уже это сделал.
Теперь моя архитектура: У меня есть три модуля:
- AppModule (корень)
- TimeModule (должен быть помощником модуль позже с некоторыми директивами)
- AuthModule (Войти, Зарегистрироваться компоненты и т. д.)
AppModule:
@NgModule({
imports: [
TimeModule,
BrowserModule,
FormsModule,
AuthModule,
routing,
],
declarations: [
AppComponent
],
providers: [
appRoutingProviders
],
bootstrap: [AppComponent]
})
AuthModule:
@NgModule({
imports: [
BrowserModule,
FormsModule,
authRouting
],
declarations: [
AuthComponent,
LoginComponent,
SignupComponent,
LogoutComponent
],
providers: [
AuthGuard,
AuthService
],
bootstrap: [ LoginComponent ]
})
TimeModule:
@NgModule({
declarations: [
ReadableDatePipe,
TimeDeltaDirective
]
})
А теперь я пытаюсь использовать мой TimeDeltaDirective в целях LoginComponent. И я уже пытался добавить директиву в другие массивы объявлений, но это тоже не сработает.
Я благодарен за любую поддержку! Благодаря
TimeDeltaDirective:
import { Directive, ElementRef, Input, Renderer } from '@angular/core';
@Directive({ selector: '[time-delta]' })
export class TimeDeltaDirective {
constructor(renderer: Renderer, el: ElementRef) {
function getTimeDelta(date: Date) {
var now = new Date();
return (now.getTime() - date.getTime())/1000;
}
this.delta = getTimeDelta(new Date(this.date));
}
@Input('date') date: string;
delta: number;
}
использование в LoginComponent (пример):
@Component({
selector: 'login',
template: `
<p date="2016-09-28 00:00:00" [time-delta]>{{delta}}</p>
`
})
Спасибо за ваш ответ. К сожалению, это не работает. Я добавил «TimeDeltaDirective» в массив экспорта и добавил то же самое в массив импорта «AuthModule». По-прежнему такая же ошибка. Любая другая идея? –
@UeliKramer Добавил ли 'TimeDeltaDirective' или' TimeModule' импорт 'AuthModule'? –
Я добавил «TimeModule» для импорта. –