Moment()未在Angular中定义

时间:2018-09-24 10:17:20

标签: angular

我有一个正在工作的Angular项目,并且已获得工作以继续开展工作。 由于这对我来说是一个小而又令人困惑的问题,因此在进行大量研究后,我未能获得结果。

在我的项目中,我们在 app.component.ts 中使用了该时刻,并使用了代码。代码在下面

1。 app.component.ts

import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
declare var moment: any;

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})

export class AppComponent {

 year = moment().format("YYYY")

 constructor(private router: Router) {}
}

2。 app.component.html

<router-outlet></router-outlet>

<hr>

<section class='container footer'>
 <div class="row">
  <div class="col-md-6">
   <p>Hello {{year}}</p>
  </div>
 </div>
</section>

此行出现错误:year = moment().format("YYYY")

我在注释该行后就可以使用,但是当代码中包含该行时,它不起作用。

错误是这样的:

ERROR ReferenceError: moment is not defined
at new AppComponent (app.component.ts:12)
at createClass (core.es5.js:10925)
at createDirectiveInstance (core.es5.js:10756)
at createViewNodes (core.es5.js:12197)
at createRootView (core.es5.js:12092)
at callWithDebugContext (core.es5.js:13475)
at Object.debugCreateRootView [as createRootView] (core.es5.js:12792)
at ComponentFactory_.webpackJsonp.../../../core/@angular/core.es5.js.ComponentFactory_.create (core.es5.js:9864)
at ComponentFactoryBoundToModule.webpackJsonp.../../../core/@angular/core.es5.js.ComponentFactoryBoundToModule.create (core.es5.js:3333)
at ApplicationRef_.webpackJsonp.../../../core/@angular/core.es5.js.ApplicationRef_.bootstrap (core.es5.js:4768)

研究结束后,我尝试了更多操作,但据我所知,该操作无法正常进行,因为在加载窗口之前加载的是瞬间。

但是找不到纠正它的任何可能方法。令您惊讶的是,它在我们的网络上运行良好,但是当我在本地计算机上运行时,它发出了同样的错误。

我们非常感谢您的帮助。谢谢

2 个答案:

答案 0 :(得分:4)

安装时刻npm install moment --save

使用import * as moment from 'moment';

import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import * as moment from 'moment';

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})

export class AppComponent {

 year = moment().format("YYYY")

 constructor(private router: Router) {}
}

答案 1 :(得分:1)

只需在控制台类型中使用npm进行安装

npm install --save moment

然后在您的Angular应用中,导入就这么简单:

import * as moment from 'moment';

就是这样,您将获得TypeScript的全面支持!

year = moment().format("YYYY")