2016-07-12 93 views
0

我有一個json與我的頁面的轉換獲取加載靜態文件加載程序工作正常,但是當我使用$ httpBackend模擬api調用它不加載。我的配置是這樣的:角度翻譯與html後端的靜態文件加載器

$translateProvider.useStaticFilesLoader({ 
     prefix: "assets/lang-", 
     suffix: ".json" 
    });*/ 
    $translateProvider.useInterpolation('textBreaksInterpolation'); 
    $translateProvider.preferredLanguage('en'); 

我也列入白名單的所有資產htmlBackend這樣的:

$httpBackend.whenGET(/assets.*/).respond(200, ''); 

有什麼建議?謝謝。

+0

難道沒有加載或響應是空的?當你執行'$ httpBackend.whenGET(/ assets。* /)。respond(200,'');'它會返回空字符串給你所做的每個調用。嘗試'$ httpBackend.whenGET('assets/lang-en.json')。respond(200,'json response here');' – maurycy

回答

0

我建議不要使用延遲加載。 (當然,如果你沒有太多的語言)。

剛剛建立的文本JSON文件到您的包:

import textsEn from 'texts.en.json'; 
import textsDe from 'texts.de.json'; 
import textsEs from 'texts.es.json'; 

.config($translateProvider => { 
    $translateProvider.translations('en', textsEn); 
    $translateProvider.translations('de', textsDe); 
    $translateProvider.translations('es', textsEs); 
}) 
+0

如何/在哪裏可以使用該導入?看起來很簡單,但我得到「app.js:1未捕獲的SyntaxError:意外的令牌導入」 – Gatekeeper

+1

好吧我修復了它由var initInjector = angular.injector(['ng']); var $ http = initInjector.get('$ http'); (函數(結果){ $ translateProvider.translations('en',result.data); });} $ http.get('/ assets/lang-en.json') 。 – Gatekeeper

+0

但這是正確的方法,謝謝 – Gatekeeper