以前有人问过类似的问题,我已经尝试过给他们的解决方案,但我的问题却没有什么不同。
假设我的控制器中有一系列像这样的对象
$scope.objArray = [
{
id:1,
name:"placeholder1"
},
{
id:2,
name:"placeholder2"
}
];
现在基于这个数组,我正在生成一个像这样的动态表单
<div ng-repeat="field in fields">
{{field.field_name}} </br>
<input type="text" ng-model="field.field_name"><br>
</div>
此处以此形式,我希望将ng-model
值设置为placeholder1
和placeholder2
,而不是像javascript
这样的field.field_name
变量,因为我的目标即将到来来自另一个包含html的来源。
<p>this is sample html {{placeholder1}}. again sample html {{placeholder2}} </p>
我这里没有这些JS变量。到目前为止,我找不到任何能够以这种方式工作的解决方案。
这里是plunk的链接: http://plnkr.co/edit/ttaq0l3PDRu4piwSluUX?p=preview
答案 0 :(得分:2)
在您的情况下,它将如下所示:
<div ng-repeat="field in fields">
{{field.field_name}}
<br>
<input type="text" ng-model="$parent[field.field_name]">
<br>
</div>
请注意,您必须使用$parent
引用,因为在您的情况下您要设置外部作用域的属性(其中定义了objArray
),但是ngRepeat
创建了每个子作用域的子作用域迭代,所以你需要一步。