2017-01-07 2 views
0

Hallo Ich möchte mit angularjs den Wert eines Etiketts bekommen, und ich habe versucht, mit:AngularJS get html inneren Wert des Etiketts innerhalb ng-repeat

var photoName=angular.element('label[id=photoLbId]').val(); 

und das Ergebnis ist nicht definiert mittlerweile für einen Eingangstyp Radio funktioniert

Wie könnte ich den HTML-Wert des Etiketts mit angularjs bekommen? hier ist der HTML-Code für das Label:

<ul id="navlist" style="list-style: none; width: 1000px;"> 
    <li ng-repeat="item in stepsUrlPhotosList track by $index" style="display: inline; width: 1000px;"> 
     <label id="photoLbId" for="photoId">{{item.name}}</label> 
     <img id="photoId" style="width: 30%;max-height:300px ;" ng-src="{{item.photoUrl}}"> 
    </li> 
</ul> 

Hier ist die Richtlinie von Winkelcode:

app.directive('quiz',['$http',function(answerList1) { 
    return { 
     restrict: 'AE', 
     scope: {}, 
     templateUrl: 'template.html', 
     controller : ['$scope', '$http','answerList1',, function ($scope,$http,answerList1) { 


      $scope.checkAnswer1 = function() { 

       console.log('Checking elements..... '+angular.element('input[name=answer1]:checked').val()); 

       var ans1 = angular.element('input[name=answer1]:checked').val(); 


       console.log('Checking label.....'+angular.element('label[id=photoLbId]').val()); 
       var photoName=angular.element('label[id=photoLbId]').val(); 

       answerList1.push(photoName+' '+ ans1); 
      }; 
     }] 
    } 
}]); 

Antwort

0

Sie benötigen $scope Variable zu verwenden und Sie können die Variable zugreifen und den Wert durch bekommen ng-click

DEMO

var app = angular.module("app", []); 
 

 
app.controller("ListCtrl", ["$scope", 
 
    function($scope) { 
 

 
    $scope.stepsUrlPhotosList= 
 
    [{ 
 
     "OwnerID": 1, 
 
     "Comment": "Charlotte is brilliant. A lovely person. Thank you!", 
 
     "rating": 4 
 
     }, { 
 
     "OwnerID": 2, 
 
     "Comment": "The best dog carer ever! She is amazing", 
 
     "rating": 4 
 
     }] ; 
 
    
 
    $scope.display = function(item){ 
 
     alert(item.rating); 
 
    } 
 
    } 
 
]);
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <script data-require="[email protected]" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<body ng-app='app'> 
 
    <div ng-controller="ListCtrl"> 
 
    <ul> 
 
     <li ng-repeat="item in stepsUrlPhotosList" ng-click="display(item)"> 
 
      {{item}} 
 
     </li> 
 
    </ul> 
 
    </div> 
 
</body> 
 
</html>

+0

hallo danke für die Hilfe, aber mein Winkel Code ist in einer Richtlinie und die Steuerung wird dynamisch erstellt, damit ich nicht Ihre Lösung verwenden, kann ich die HTML-Label-Element aus Winkel etwas ähnliches mit document.getElementById zugreifen möchten ("myId") – alecrama

+0

poste deine Direktive – Sajeetharan

0

Dies funktionieren würde.

var El = angular.element(document.querySelector('#photoLbId')); 
var value = El.val(); 
+0

Ich wurde undefiniert, obwohl ich auch beim Wertattribut den iterierten Ergebniswert hinzugefügt habe: alecrama

Verwandte Themen