我使用的是Angular bootstrap datepicker popup,我想根據語言環境設置文本框的日期格式,所以我的想法是從locale文件讀取屬性「shortdate」並將其設置爲format屬性。如何閱讀AngularJs語言環境文件?
所以我的問題是,我怎樣才能讀取語言環境文件?該文件存在,定位是實際工作,你可以看到在瀏覽器的開發者工具的網絡選項卡中的文件
我使用的是Angular bootstrap datepicker popup,我想根據語言環境設置文本框的日期格式,所以我的想法是從locale文件讀取屬性「shortdate」並將其設置爲format屬性。如何閱讀AngularJs語言環境文件?
所以我的問題是,我怎樣才能讀取語言環境文件?該文件存在,定位是實際工作,你可以看到在瀏覽器的開發者工具的網絡選項卡中的文件
我意識到不需要讀取任何內容,因爲語言環境已經由Angular加載,所以您可以在$ locale服務中獲得所有數據。
this.format = $locale.DATETIME_FORMATS.shortDate;
在我的情況下,該格式的變量被分配到UIB-日期選擇器,彈出這樣的:
<input type="text" uib-datepicker-popup="{{vm.format}}"
ng-model="vm.model" datepicker-options="vm.dateOptions"
ng-required="vm.isRequired" ng-disabled="vm.isDisabled"/>
愚蠢的問題,我希望這可以幫助其他一些無能在未來:)
我曾經有過同樣的要求和最終使用了「tmh.dynamicLocale」模塊(see here。
使用這個模塊,您首先需要配置一個區域供應商。在一個角度配置功能,注入「tmhDynamicLocaleProvider」並調用localeLocationPattern()函數來定義模式用來訪問你的locale
例如:
tmhDynamicLocaleProvider.localeLocationPattern('vendor/angular/locale/angular-locale_{{locale}}-{{locale}}.js');
然後,當區域設置是應該改變,你只需要在注入「tmhDynamicLocale」在服務/控制器/ ...並調用set()函數,路過的參數,您要切換到的語言環境。
希望能幫到你。
感謝您的幫助,但我不希望區域設置發生任何變化。區域設置將是相同的,我只需要閱讀此區域設置來更新datepicker彈出窗口的格式。 – Javiere
由您決定是否調用set()函數而不進行任何實際的語言環境更改。在我工作的一個應用程序中,我根據用戶在應用程序中選擇的語言加載了不同的區域設置文件,以便日期選擇器小部件中的標籤進行相應的轉換。 – kyiu
但問題是,datepicker沒有使用本地化來設置格式,它有一個屬性,必須手動設置。無論您加載的是哪種語言環境,它們將被該組件忽略,因此要正確設置,我想閱讀區域設置,然後手動設置。 – Javiere