在我目前的多语言Angularjs应用程序中,我有一些输入,每种语言都有多个值( en,fa,ar 和...),如下所示:
HTML
<div ng-repeat="lang in languages">
<label> {{'TITLE' | translate}}</label>
<input class='form-control'
type='text'
name="title"
ng-model="createModel.lang['title']">
</div>
<div ng-repeat="lang in languages">
<label> {{'NAME' | translate}}</label>
<input class='form-control'
type='text'
name="name"
ng-model="createModel.lang['name']">
</div>
JS
$rootScope.languages = ['en', 'fa', 'ar']; // array of languages
意味着,我希望ng-model
像这样:
en:
ng-model='createModel.en["title"]'
ng-model='createModel.en["name"]'
fa:
ng-model='createModel.fa["title"]'
ng-model='createModel.fa["name"]'
ar:
ng-model='createModel.ar["title"]'
ng-model='createModel.ar["name"]'
最后我想要createModel
:
createModel: {
'en': ['title': 'title1' , 'name': 'Jone'],
'fa': ['title': 'عنوان1' , 'name': 'جان'],
'ar': ['title': '...' , 'name': '...']
}
那么,我该怎么做?
答案 0 :(得分:0)
更改
createModel.lang['title']
到
createModel[lang].title
(显然名称相同)。
另请注意,您的JS代码无效。它应该是
createModel: {
'en': {'title': 'title1' , 'name': 'Jone'},
'fa': {'title': 'عنوان1' , 'name': 'جان'},
'ar': {'title': '...' , 'name': '...'}
}
数组以[
开头。对象以{
开头。