Я хотел бы сделать момент, чтобы его можно было вводить через мое приложение.
Я только начал изучать ng2 и не мог найти этот тип использования в документах.
Вот что у меня в app.module.ts
:Момент инъекции в angular2
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {HttpModule} from '@angular/http';
import {AppComponent} from './app.component';
import * as moment from 'moment';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [{provide: 'moment', useValue: moment}],
bootstrap: [AppComponent]
})
export class AppModule {
}
и вот компонент:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.sass']
})
export class AppComponent {
title = 'app works!';
constructor(private moment) {
this.title += this.moment;
}
}
есть эта ошибка:
Uncaught Error: Can't resolve all parameters for AppComponent:
Как это должно быть сделано правильно?
ОБНОВЛЕНО МОДУЛЬ
const moment = new OpaqueToken('moment');
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [{provide: moment, useValue: moment}],
bootstrap: [AppComponent]
})
export class AppModule {
}
ОБНОВЛЕНО КОМПОНЕНТ
import { Component } from '@angular/core';
import * as moment from 'moment';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.sass']
})
export class AppComponent {
title = 'app works!';
constructor(private moment: moment) {
this.title += this.moment()
}
}
Существует ошибка в этой строке constructor(private moment: moment)
, который говорит, что: Cannot find name 'moment'.
вы прошли через [этот ответ] (http://stackoverflow.com/q/35166168/2435473)? –
это не связано. Я не хочу использовать его с помощью импорта. Я хочу, чтобы иметь возможность вводить его в любом классе – vlio20
вы используете 'угло-cli'? – Pradeepb