Angular translate provider - 有没有办法替换常规变量?

时间:2017-09-11 13:57:23

标签: javascript angularjs angular angular-translate

在我的应用中,我的许多翻译字符串都需要在其中包含用户名。 例如:Hello {{user_name}}! (用户名必须是翻译字符串的一部分,因为字符串中名称的位置取决于语言))

设置属性的方法是{{"TRANSLATE_ID" | translate:{user_name:myUserName}}}

由于{{user_name}}出现在100多个翻译字符串中,因此我不想多次发送user_name参数。我想有办法只设置一个参数。

我无法替换配置中的{{user_name}}字符串,因为user_name是异步设置的(从服务器获取),并且在translateProvider设置字符串时不可用。< / p>

由于

1 个答案:

答案 0 :(得分:0)

AngularTranslate允许您通过承诺从html本身或控制器内部转换标签。我相信你想要的优雅方法是在你的控制器中创建一个方法/函数,以你想要的方式处理翻译,然后在你的html中调用这个方法/函数,将用户名作为参数传递。

将JSON翻译文件中的用户名称为“USERNAME”,例如“Hello,USERNAME!”,使用AngularTranslate在控制器中创建的方法中进行翻译,然后执行字符串替换,更改单词USERNAME for方法参数(真实用户名)并使用此字符串作为方法的返回值,将在您的html中调用。

希望这有帮助。