定义指令内的翻译

时间:2015-06-05 15:16:14

标签: angularjs angular-translate

我想构建指令,每个指令都有自己的翻译。我似乎找到的是一种“全局”设置所有翻译(通过app.config($translateProvider))或自定义装载器的方法,这似乎有点矫枉过正。 不幸的是我不能将$ translateProvider注入一个指令(这是正常的吗?),这正是我需要的。

1 个答案:

答案 0 :(得分:0)

在运行应用程序时,您无法使用提供程序。您可以使用translationProvider.translations()方法,也可以使用异步加载程序,可以找到详细信息in this GitHub issue.

提供者摘录:
Angular Documentation for Providers州:

  

只有当您希望公开应用程序范围内必须在应用程序启动之前进行的配置的API时,才应使用提供程序配方。

为了更好地理解,请阅读Ben Clinkinbeard的this article。它向您展示了如何在指令中访问提供者的属性(在本例中为locale属性)以及如何在config函数内部配置语言环境(在应用程序“启动”之前运行)(这就是所谓的配置)阶段) - 这意味着,如果指令代码运行,则已在提供程序中设置了语言环境)。我还建议调查Ben's example repository

请注意在指令中使用 bilingualButtonConfig ,但在配置阶段使用.config() - 函数内的 bilingualButtonConfigProvider

如果配置阶段结束 - 拒绝访问提供商。然后创建服务,应用程序转到运行阶段。那是你的问题。您尝试在运行阶段访问提供程序 - 角度拒绝。