2016-12-23 44 views
0

我想在我的打字代碼中注入momentJs庫來對Date對象執行操作。但我不熟悉通過angularJs注入打字稿,因爲它與javascript沒什麼區別。如何在AngularJs中打字時輸入momentjs 1.5

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

在上面的代碼中,moment功能無法識別,即使我已經包括CDN。

回答

0

在頁面中添加了所有必要的moment.js腳本。

使用方法如下,並嘗試

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

你忘了在配置回調添加的時刻。您必須在配置回調中添加時刻,因爲您已添加$ mdDateLocaleProvider。

有一個更受歡迎的角矩。你可以看到角矩記錄中的步驟。 https://github.com/urish/angular-moment

讓我知道如果別的任何事情需要

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")}]); 

,並用它在您的控制器中仍然使用依賴注入。

TIPS -使用打字稿,你應該使用這樣的類創建應用程序(即使打字稿僅僅是一個Javascript的超集):

class MyController implements ng.IController { 

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

    constructor(
     private moment) {} 

    $onInit = function() { 

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

    } 

} 

讓我知道,如果它可以幫助你。

+0

這是在角2右? –

+0

不,角1使用基類結構。 – Parker

+0

我只是爲了向你建議一個更乾淨的代碼,使用打字稿和更簡單的方法來移動到角度2,我只是顯示這個提示。 如果它讓你感到困惑,只需堅持正常的方式,它應該 – Parker

相關問題