angular 使用 ng-model 和 ng-repeat 中的表达式

angular using ng-model with expression in ng-repeat

我必须用 angularJS 为多语言内容管理系统制作一个表单。

我的语言列表在 angular 范围内是这样定义的:

$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>

ng-model 需要一个 expression (然后在当前范围内求值),它的工作方式与例如为标签设置 ID。尝试将您的输入更改为以下内容:

<input ... ng-model="editquestion['titlel' + lang.id]" />