我想在我的打字稿代码中注入Momentjs库以对日期对象进行操作。但是我不熟悉通过AngularJS注射打字稿,因为它与JavaScript没有什么不同。
angular.module("app")
.config(function ($mdDateLocaleProvider) {
$mdDateLocaleProvider.formatDate = function (date) {
return moment(date).format('YYYY-MM-DD');
};
});
在上面的代码中,即使我包括cdn。
moment
函数也无法识别。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函数中配置MOMM:
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();
}
}
让我知道它是否有帮助。
在您的页面中添加所有必要的MOMM.JS脚本后。
使用它并尝试
angular.module("app")
.config(function ($mdDateLocaleProvider, moment) {
$mdDateLocaleProvider.formatDate = function (date) {
return moment(date).format('YYYY-MM-DD');
};
});
您忘了在配置回调中添加矩。您必须在添加$ mddatelecaleprovider时添加配置回调中的时刻。
有一个更受欢迎的角矩。您可以看到角矩记录的步骤。https://github.com/urish/angular-moment
让我知道是否需要其他任何东西