在extjs项目中使用Moment.js

时间:2018-08-30 22:23:10

标签: javascript node.js extjs extjs5 sencha-cmd

我正在使用6.5.2版本和现代工具包开发Extjs项目,我想使用https://momentjs.com/包,但是无法导入node_dependency。 Momentjs页面具有下载或安装方法,但是如果我下载代码,我想在其中使用任何方法,都会引发异常,并且如果我使用“ npm install moment --save”命令安装软件包,则不会知道如何导入和调用它。

有人可以帮助我在extjs中导入此依赖项。

2 个答案:

答案 0 :(得分:1)

@Carlos您可以按照Akrion的建议在index.html文件中添加脚本标签。

另一种方式- 在app.json文件中,您可以在js []-

中添加以下内容
"js":[
      {
        "path": "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js",
        "remote": true
      }
]

添加后,您需要刷新sencha应用或sencha应用构建。

然后在应用程序代码中可以按以下方式使用它-

var welcomeText = 'Welcome to Sencha Fiddle! Today is: '+ moment(new Date()).format("MM-DD-YYYY");
Ext.Msg.alert('Welcome message',welcomeText);

答案 1 :(得分:0)

另一种方法是Ext.mixin.Mashup混合。

  

此混合功能使用户可以轻松地在其要求中使用外部脚本   类。此加载过程会延迟应用程序启动(Ext.onReady)   直到所有此类脚本均已加载,以确保您的课程   从一开始即可访问其所需的脚本。

因此,您可以拥有一个Moment.js适配器类,如下所示:

Ext.define('MomentjsAdapter', {
    mixins: ['Ext.mixin.Mashup'],

    requiredScripts: [
        'https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js'
    ],
    ...
});

我非常喜欢这一点,因为您将外部依赖项保持在使用它的位置附近。当您可能想要删除依赖项或在其他地方/项目中重复使用它时,这非常方便。