我必须使用angularJS为多语言内容管理系统制作表单。
我的语言列表在角度范围内定义如下:
$scope.languages =
[
{id:0,'name':'English'},
{id:1, name:'French'}
/* ... */
]
在我的HTML中我制作了这样的表格:
<div ng-repeat="lang in languages">
<label for="titlel{{ lang.id }}">{{ lang.name }}</label>
<input type="text" class="form-control" ng-model="editquestion['titlel{{ lang.id}}']" id="titlel{{ lang.id }}" />
</div>
它没有正常工作,标签是正确的,但ng-model绑定不起作用,即使有数据,也没有文字添加到文本字段中是editquestion.titleX,当我在html输入字段中键入一些文本,键入的文本将在所有字段中复制。
我检查了检查员,ng-model属性看起来是正确的。
此处问题的屏幕截图
http://accessdev.s3.amazonaws.com/temp/replicated1.PNG
http://accessdev.s3.amazonaws.com/temp/replicated2.PNG
如果我手动制作html代码,则问题不存在,例如:
<label for="textl0">English</label>
<textarea class="form-control" ui-tinymce="tinymceOptions" ng-model="editquestion.textl0"></textarea>
<label for="textl1">French</label>
<textarea class="form-control" ui-tinymce="tinymceOptions" ng-model="editquestion.textl1"></textarea>
答案 0 :(得分:1)
ng-model
需要一个表达式(然后在当前范围内进行评估),它的工作方式与例如设置标签的ID。尝试将输入更改为以下内容:
<input ... ng-model="editquestion['titlel' + lang.id]" />