angularjs调用对象并返回值

时间:2016-04-06 08:48:04

标签: javascript angularjs ionic-framework

我有一个按钮,我希望根据我的ID值与ng-show切换。

在我的javascript中,我从on函数调用我的服务,然后从另一个函数中使用它们。

我的问题是当使用ng-click时我可以返回正确的Id但是当使用ng-init时它返回的值为undefined。

如何从" onload"中调用和定义Id值?像ng-init这样的事件?

HTML

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

的Javascript 服务获取

 $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");
          })    

        };

功能

 $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;
    }

  }

1 个答案:

答案 0 :(得分:0)

将代码更改为此代码,可能是在值到来之前的HTML呈现

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