使用ng-model在ng-repeat中表达的角度

时间:2015-10-02 13:39:25

标签: javascript angularjs angularjs-ng-model

我必须使用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>

1 个答案:

答案 0 :(得分:1)

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

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