1

我想在我的打字稿代码中注入 momentJs 库来对 Date 对象进行操作。但是我不熟悉通过 angularJs 注入 typescript,因为它与 javascript 没什么不同。

angular.module("app")
       .config(function ($mdDateLocaleProvider) {
            $mdDateLocaleProvider.formatDate = function (date) {
                return moment(date).format('YYYY-MM-DD');
            };
        });

在上面的代码中moment,即使我已经包含了 CDN,也无法识别该函数。

4

3 回答 3

0

在页面中添加所有必要的 moment.js 脚本之后。

像这样使用它并尝试

angular.module("app")
.config(function ($mdDateLocaleProvider, moment) {
    $mdDateLocaleProvider.formatDate = function (date) {
        return moment(date).format('YYYY-MM-DD');
    };
});
于 2016-12-23T06:50:55.823 回答
0

您忘记在配置回调中添加时刻。您必须在配置回调中添加时刻,因为您已添加 $mdDateLocaleProvider。

有一个更流行的角矩。您可以查看角力矩文档中的步骤。https://github.com/urish/angular-moment

让我知道是否需要其他任何东西

于 2016-12-23T06:56:59.287 回答
0

1 -使用包管理器安装时刻(例如 NPM)

2 -在您的入口点应用程序文件中引用它:

<script src="node_modules/moment/moment.js"></script>

3 -创建一个恒定的参考时刻,因为它可以用作服务(不要忘记导入它):

import moment = require('moment');

angular.module("app").constant("moment", moment);

4 -您现在应该能够像这样在您的角度运行功能中配置时刻:

angular.run(["moment", function(moment) { moment.locale("fr")}]);

并且在你的控制器中使用它仍然使用依赖注入。

提示 -使用 typescript,您应该使用这样的类创建应用程序(即使 Typescript 只是 Javascript 的超集):

class MyController implements ng.IController {

    static $inject: string[] : ["moment"];

    constructor(
        private moment) {}

    $onInit = function () {

        // do something with moment
        let date =  this.moment();        

    }

}

让我知道它是否对您有帮助。

于 2016-12-23T09:14:45.613 回答