2014-09-24 38 views
2

在我的config/environment文件中,我想包含一個Date對象。ember-cli config/environment中的Javascript對象

執行以下操作:

module.exports = function(environment){ 
    var ENV = { 
    ...  
    APP: { 
     someDate = new Date(2014, 12, 25, 22, 0, 0, 0), 
     .... 
    } 
    .... 
    }; 
    ... 
}; 

並經由訪問它:

import ENV from 'my-app/config/environment'; 

... 

var isDate = ENV.APP.someDate instanceof Date; //false 
var isDateFromWin = window.MyAppENV.APP.someDate instanceof Date; //false 

結果從配置對象被拉是字符串類型,而不是一個日期的對象。環境文件中的設置是否總是以字符串形式返回?我如何從我的配置文件中返回日期(或其他POJO)?

此外,文件似乎被忽略我的.jshintrc文件,我無法訪問window對象按Access window object in ember-cli environment

回答

1

你有一個錯誤「執行以下操作」的例子,它應該是:

...  
APP: { 
    someDate: new Date(2014, 12, 25, 22, 0, 0, 0), 
    ... 
} 
... 

此外,你應該訪問它想:

date = MyAppENV.APP.someDate; // replace with name of your entry point 

或:

import Ember from 'ember'; 
date = Ember.ENV.APP.someDate; 
+0

啊,這是我的例子中的一個錯字,對不起!我的日期仍然以字符串形式出現,無論我是將它們從窗口對象中拉出還是導入它們。雖然沒有Ember.ENV.APP提供給我。我已經更新了這個問題。 – RYFN 2014-09-24 15:23:13

0

所有環境的配置價值越來越被渲染到<meta>標籤在你的結果的index.html之前編碼。您可以在dist/index.html中檢查生成的環境配置並查看它的外觀。

這意味着當您在js中導入環境配置時,您將獲得解碼字符串。這就是爲什麼你放棄了類型日期。

如果你需要通過一個日期,我會建議設置時間戳到你的環境配置