用于多语言输入的动态“ng-model”in`ng-repeat`

问题描述 投票:0回答:1

在我目前的多语言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': '...']
}

那么,我该怎么办呢?

angularjs angular-ngmodel multilingual
1个回答
0
投票

更改

createModel.lang['title']

createModel[lang].title

(显然,名称相同)。

另请注意,您的JS代码无效。它应该是

createModel: {
  'en': {'title': 'title1' , 'name': 'Jone'},
  'fa': {'title': 'عنوان1' , 'name': 'جان'},
  'ar': {'title': '...' , 'name': '...'}
}

数组以[开头。一个对象以{开头。

© www.soinside.com 2019 - 2024. All rights reserved.