我正在使用ui-router并使用angular-translate开发了一个多语言网站 但是目前我被困在我想要的地方:
translate=""
属性组成,换句话说,完全翻译页面。但是我愿意,如果我在路由时可以有条件,那么这将解决我的问题。
查看代码可以让您更容易理解。目前我的代码如下:
.state('whoweAre', {
url: '/about-us',
templateUrl: 'templates/whoweAre/whoweAre.html',
controller: 'whoweAreCtrl'
}
)
但现在我想要像
这样的东西 .state('whoweAre', {
url: '/about-us',
templateUrl: function(isTranslated){
if(isTranslated){
return "templates/translated/whoweAre/whoweAre.html";
}
else{
return "templates/whoweAre/whoweAre.html";
}
},
controller: 'whoweAreCtrl'
}
)
但这似乎没有用,我在app.js中有这个isTranslated
变量,我无法在config(routes.js)文件中访问它。
任何与此相关的工作都会很棒。
我正在使用这个,因为当用户第一次到达时,角度翻译文本似乎是空的,标签出现时带有空标签,这导致了糟糕的用户体验。
任何帮助,将不胜感激。
谢谢!
答案 0 :(得分:1)
您可以在 app.js
中找到当前状态并动态设置模板在 app.js 中查看状态
string comparison
=
is equal to
if [ "$a" = "$b" ]
Caution
Note the whitespace framing the =.
if [ "$a"="$b" ] is not equivalent to the above.
==
is equal to
if [ "$a" == "$b" ]
答案 1 :(得分:0)
经过更多的研究,我发现这种方式很有用。感谢大家的帮助。
templateProvider:
function(AppService) {
if(AppService.getLocal("language").locale != 'en' )
return "translated template url";
else
return "normal page"
}