2016-07-12 46 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