Maison > Questions et réponses > le corps du texte
Comment obtenir les attributs ci-dessus du dom rendu par ng-reapt dans angulairejs
我想大声告诉你2017-05-15 17:15:44
Les données de vos attributs sont à l'origine recyclées, récupérez simplement les données directement. Ne pensez jamais à la méthode de jq
.repeat-finish=renderFinish(item)
$scope.renderFinish=function(item){
...
kit.log(item.id)
}
怪我咯2017-05-15 17:15:44
Merci pour l'invitation, la méthode de @crazy4x est également OK. data-*
Dans les scénarios d'application généraux, le framework MV* n'est pas utilisé et le proxy d'événements est utilisé pour éviter d'avoir à ajouter/supprimer manuellement des écouteurs lorsque les données de la liste changent. En ajoutant un écouteur au parent, puis en obtenant l'objet événement, puis en obtenant la valeur de l'attribut personnalisé de l'élément actuel dans la liste, l'exemple suivant fournit une autre méthode, à titre de référence uniquement.
<!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>