angularjs 用ng-reapt渲染的dom 怎么获取上面的属性
我想大声告诉你2017-05-15 17:15:44
你属性的数据本来就是循环出来的,直接去获取数据就可以了,思路上永远不要想jq的方法
repeat-finish=renderFinish(item)
$scope.renderFinish=function(item){
...
kit.log(item.id)
}
怪我咯2017-05-15 17:15:44
谢邀,@crazy4x的方式也是OK的。data-*
的一般应用场景,没使用MV*框架,使用事件代理的方式,避免列表数据变化时,需要手动添加/移除监听。通过在父级添加监听,然后获取事件对象,然后获取列表当前项的自定义属性值,下面示例提供另外一种方式,仅供参考。
<!DOCTYPE html>
<html lang="en" ng-app="myapp">
<head>
<meta charset="UTF-8">
<title>Angular Repeat-Done Demo</title>
<script src="https://cdn.bootcss.com/angular.js/1.6.3/angular.min.js"></script>
</head>
<body ng-app="myapp">
<p ng-controller="AppCtrl">
<h4>Users List</h4>
<ul>
<li ng-repeat="user in users" repeat-done="renderFinish($index)"> // user
{{user.id}} - {{user.name}}
</li>
</ul>
</p>
<script type="text/javascript">
var myapp = angular.module("myapp", [])
.directive('repeatDone', function () { // 用于判断ng-repeat是否执行完成
return function (scope, element, attrs) {
if (scope.$last) { // all are rendered
attrs.repeatDone && scope.$eval(attrs.repeatDone);
}
}
})
.controller("AppCtrl", ['$scope', function ($scope) {
$scope.users = [{
id: 1,
name: 'Lolo'
}, {
id: 2,
name: 'Semlinker'
}];
$scope.renderFinish = function(index) { // user对象
console.log(index);
};
}])
</script>
</body>
</html>