将 ng-model 分配给 ng-repeat 项目
Posted
技术标签:
【中文标题】将 ng-model 分配给 ng-repeat 项目【英文标题】:Assigning ng-model to ng-repeat item 【发布时间】:2015-06-09 03:01:18 【问题描述】:我们有一个场景,我需要重复 <li>
项目,我们需要动态模型来编写点击事件。
<ul class="flights trip1-list" ig-init="trip1_fare = 0">
<li ng-repeat="data in flt_det" ng-click="addUp($event)" ng-model="***">
<div class="flight-icons"></div>
<div class="flight-details">
<div class="time">data.depart_time|date:'HH:mm'</div>
<div class="name">data.flight_name </div>
<div class="duration">(data.arrival_time - data.depart_time)</div>
</div></li>...</ul>
在这种情况下我们如何获得动态模型,我可以从 json 本身获取值,即这里的“数据”。
提前致谢。
【问题讨论】:
【参考方案1】:你可以从重复的item中得到,data。
编辑:
把这个放到控制器里:
// private variable for storing watch functions to unbind when the
// controller is destroyed to reduce watchers & prevent memory leaks
var unbindFns = [];
function bindWatchers()
angular.forEach(collection, function(item)
var unbind = $scope.$watch(item.fooBar, function()
// do stuff
);
unbindFns.push(unbind);
);
function unbindWatchers()
angular.forEach(unbindFns, function(fn)
fn();
);
$scope.$on('$destroy', unbindWatchers);
【讨论】:
但我可以在子元素中使用,而不是在 元素上<li>
标签的子元素?在您的示例中,您没有定义孩子。如果你这样做了,你将能够访问子元素中的 data 属性。
请找到编辑后的代码,我想在 元素上触发一个事件,并根据该事件的一些数据触发一些事件。所以我想要一些关于
的模型>
对不起,我不明白你在问什么。你是说你想监听集合中模型的事件吗?如果这些是集合上的 CRUD 事件,您可以使用 $watchCollection。如果您正在谈论在集合中的每个项目上侦听特定事件,例如 data.fooBar()
,请查看我编辑的答案。以上是关于将 ng-model 分配给 ng-repeat 项目的主要内容,如果未能解决你的问题,请参考以下文章
ng-model 是不是适用于 ng-repeated 字段?
AngularJS 获取ng-repeat的动态ng-model