首页 新闻 会员 周边 捐助

angularjs国际化$translate.instant()方法不生效

0
悬赏园豆:10 [待解决问题]

问题
现在demo.js中第三行 , 获取不到中文是为什么 , 大神们 , 请问哪里错了?

{{"100001"|translate}}这个过滤器实际上也是调用$translate.instant这个方法 , 为什么直接调用就不行呢 , 就直接返回了key值... 控制台也没有报错

代码结构

demo.html

demo.js

结果如下

病了?来串代码吧!的主页 病了?来串代码吧! | 初学一级 | 园豆:192
提问于:2018-12-09 20:29
< >
分享
所有回答(1)
0

都过了一年多了,也没人回答,我来回答下吧。
根据key查找是个异步请求,拿回来的是个promise,所以你直接这么写肯定是找不到的,官方其实给了两种写法,第一种。

$translate(key).then(function (resp) {
  $scope.login_title = resp;
}, function (err) {
  console.log(err);
});

第二种,因为是异步行为,所以我们可以用官方提供的监听:

$rootScope.$on('$translateChangeSuccess', function () {
  $scope.login_title = $translate.instant(key);
})

外面的博客全是一个写错,其他人全部抄错,没一个用心看的,让人厌烦。
更多可参考官方文档angular-translate,全是英文,耐心看还是能获取到有用信息。
当然,这个迟到的回答已经帮助不了你了。

听风是风 | 园豆:402 (菜鸟二级) | 2020-04-21 14:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册