2016-04-06 8 views
1

Ich habe eine Schaltfläche, die ich mit ng-show basierend auf dem Wert meiner Id umschalten möchte.angularjs Objekte aufrufen und Werte zurückgeben

in meinem javascript Ich rufe meinen Dienst von der Funktion und dann von einer anderen Funktion.

Mein Problem ist, wenn ich mit ng-Klick kann ich die richtige Id zurückgeben, aber bei der Verwendung von ng-init gibt es den Wert als undefined zurück.

Wie kann ich den Id-Wert von einem "onload" -Ereignis wie ng-init aufrufen und definieren?

HTML

<button type="button" class="col button button-small button-dark" ng-click="showMe(ph);" ng-init="showMe(ph);"> 
     Check In 
    </button> 

Javascript Service Anfahrts

$scope.PhaseData = function(Truck) { 


      var TruckID = window.localStorage['truckid']; 

      $http.get("http://localhost:53101/TruckService.svc/GetStatusA/" + TruckID) 
      .success(function(data) { 

      var PhaseID = null; 
      var obj = data; 
      var ar = []; 
      angular.forEach(obj, function(index, element) { 

      angular.forEach(index, function(indexN, elementN) {     

      ar.push({PId: indexN.PId, PhaseId: indexN.fk_Phase, Checkin: indexN.Checkin, Chassis: indexN.ChassisPrep, Floor: indexN.Floor, Body: indexN.Body, Paint: indexN.Paint, PhaseName: indexN.PhaseName }); 

       $scope.ph = ar; 
      /* $scope.PHID = 1; indexN.PId*/ 

      }) 

     }); 

     }) 

     .error(function(data) { 
      console.log("failure"); 
      })  

     }; 

Funktion

$scope.showMe = function(ph) 
    { 

    console.log('2', $scope.ph[0].PId); 
    console.log('cool'); 

    if ($scope.ph[0].PId >= 1) 
    { 
     $scope.show=true; 
    } 

    else if($scope.ph[0].PId <= 2) 
    { 
     $scope.show=false; 
    } 

    } 
+0

kommt Werden von einem ng-Controller tun Sie das? Wenn Sie, können Sie die $ scope.showMe direkt vom Controller aus tun, anstatt ng-init zu verwenden. Dies wird auch von angular-js vorgeschlagen: https://docs.angularjs.org/api/ng/directive/ngInit – kazenorin

Antwort

0

Ändern Sie den Code dazu kann Ihre HTML sein machen, bevor der Wert

<button ng-if="ph" type="button" class="col button button-small button-dark" ng-click="showMe(ph);" ng-init="showMe(ph);">Check In</button> 
+0

ja das hat es dank getan. –

Verwandte Themen