[英]Binding ng-model inside ng-repeat loop in AngularJS
我正在尝试处理 ng-repeat 循环内的范围问题 - 我浏览了很多问题,但还没有完全能够让我的代码工作。
控制器代码:
function Ctrl($scope) {
$scope.lines = [{text: 'res1'}, {text:'res2'}];
}
看法:
<div ng-app>
<div ng-controller="Ctrl">
<div ng-repeat="line in lines">
<div class="preview">{{text}}{{$index}}</div>
</div>
<div ng-repeat="line in lines">
<-- typing here should auto update it's preview above -->
<input value="{{line.text}}" ng-model="text{{$index}}"/>
<!-- many other fields here that will also affect the preview -->
</div>
</div>
</div>
这是一个小提琴: http : //jsfiddle.net/cyberwombat/zqTah/
基本上我有一个包含多行文本的对象(它是一个传单生成器)。 用户可以调整每一行文本(文本、字体、大小、颜色等),我想为它创建一个预览。 上面的例子只显示了输入文本的输入字段,我希望它自动/按你输入更新预览 div,但会有更多的控件。
我也不确定我的代码是否适合循环索引 - 这是在循环内创建 ng-model 名称的最佳方法吗?
对于 ng-repeat 循环的每次迭代, line
是对数组中对象的引用。 因此,要预览值,请使用{{line.text}}
。
同样,要数据绑定到文本,数据绑定到相同: ng-model="line.text"
。 使用 ng-model 时您不需要使用value
(实际上您不应该使用)。
小提琴。
要更深入地了解作用域和 ng-repeat,请参阅AngularJS 中作用域原型/原型继承的细微差别是什么? , 部分ng-repeat 。
<h4>Order List</h4>
<ul>
<li ng-repeat="val in filter_option.order">
<span>
<input title="{{filter_option.order_name[$index]}}" type="radio" ng-model="filter_param.order_option" ng-value="'{{val}}'" />
{{filter_option.order_name[$index]}}
</span>
<select title="" ng-model="filter_param[val]">
<option value="asc">Asc</option>
<option value="desc">Desc</option>
</select>
</li>
</ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.