我很难用 Angular 翻译属性。
我正在对一个数组进行 ng 重复,其中每个项目都有一个"day"属性。
<h2 ng-repeat="f in forecast">{{ "days[f.day]" | translate }} {{ f.date | date:'dd' }}</h2>
在翻译部分,我有一个"天"属性,它有 7 个子属性,一周中的每一天一个。
$translateProvider.translations('en', {
...
days: {
sunday:'Sunday',
monday:'Monday',
tuesday:'Tuesday',
wednesday:'Wednesday',
thursday:'Thursday',
friday:'Friday',
saturday:'Saturday'
}
});
所以我试图使用"f.day"值访问"days"属性中的正确翻译,但我找不到正确的语法。
我很乐意在这方面得到一些帮助。
谢谢。
我认为您提供的内容的唯一错误是您如何在提供程序中设置days
。
你拥有的基本上是一个关联数组:
days: {
sunday:'Sunday',
monday:'Monday',
tuesday:'Tuesday',
wednesday:'Wednesday',
thursday:'Thursday',
friday:'Friday',
saturday:'Saturday'
}
使用当前的结构,您无法执行days[f.day]
之类的操作,除非您确定f.day
将匹配您的一个键。一个例子是类似days.friday
因此,要检查的第一件事是登录f.day
以查看它实际上是什么。
以下建议基于f.day
是整数的假设。为了使days[f.day]
工作,您希望天数是这样的数组:
days = [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
你也可以做一个像这样的对象数组:
days = [
{"name":"Sunday"},
{"name":"Monday"},
{"name":"Tuesday"},
{"name":"Wednesday"},
{"name":"Thursday"},
{"name":"Friday"},
{"name":"Saturday"},
]
但是你必须做days[f.day].name
(再次假设f.day是一个整数)
感谢您的回复,克里斯,我的日子过得对了...但问题是当我用翻译过滤器将其放在括号之间时。喜欢这个:
{{ "days[f.day]" | translate }}
在我的视图中,它显示:天[f.day]而不是翻译。