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]" />
我必须用 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]" />