2016-10-15 2 views
0

Я пытаюсь связать и показать значение массива. Когда я задаю значение с переменной области действия, как это:Как связать и показать массив массива в angularjs

Это работает нормально, но когда я выдвигаю значение внутри массива, как этот

$scope.StockList.push(obj.data); 

Это не работает, как ожидалось

Здесь я застрял с переменной ng-repeat и scope. Может ли кто-нибудь мне помочь вот мое усилие.

$scope.StockList = []; 
$scope.IsVisible = false; 
var Stocks = []; 

function GetStockEntries(loid, pid) { 
    var data = { LocationId: loid, ProductId: pid } 
    return $http.post(serviceURL + "/GetLocationStockEntries", data).then(
    function success(data, status, headers, config) { 
     var obj = JSON.parse(data.data.d) 

     //working fine in case single array 
     //$scope.StockList = obj.data 
     $scope.StockList.push(obj.data);  
    }, 
    function error(data, status, headers, config) { 
     return data 
    } 
) 
} 

$scope.StockListing = function (item) { 
    debugger 
    $scope.IsVisible = !$scope.IsVisible 
    console.log($scope.StockList) 
} 

нг повторить код

<table cellpadding="5" cellspacing="0" class="stocktransferdiv"> 
    <tr> 
    <td colspan="4"> 
     <table cellpadding="5" cellspacing="0" data-ng-repeat="stockItem in StockList" data-ng-show = "IsVisible" data-ng-cloak width="100%">            
     <tr style="border-bottom: 1px solid #ddd; padding-bottom: 5px; margin-bottom: 5px; float: left;"> 
      <td> 
      <input type="radio" name="groupName" data-ng-value="true" data-ng-model="stockItem.selected" data-ng-change="onTaskSelect(stockItem)" /> 
      </td> 
      <td> 
      <input type="text" data-ng-model="stockItem.UserInventoryItemID"disabled="" readonly="" style="border: none; background-color: white;"> 
      </td> 
      <td> 
      <input type="text" data-ng-model="stockItem.LotNumber" disabled="" readonly=""> 
      </td> 
      <td> 
      <!--<input type="text" data-ng-model="stockItem.QuantityOnHand" disabled="" readonly="">--> 
      <span>{{stockItem.QuantityOnHand}}</span> 
      <span>{{stockItem.UnitName}}</span> 
      </td> 
      <td> 
      <input type="text" data-ng-model="stockItem.EnteredQuantity" > 
      </td> 
      <td> 
      <input type="text" data-ng-model="stockItem.Description" disabled="" readonly=""> 
      </td> 
     </tr> 
     </table> 
    </td> 
    </tr> 
</table> 

Вот результат этого JSON

enter image description here

+0

Покажите нам структуру obj.data – Sajeetharan

+0

@Sajeetharan: Изменено с obj.data результате – Miranda

+0

Вам нужно нажать на объект не свойство, попробовать что-то вроде этого, $ scope.StockList.push (OBJ) ; – Sajeetharan

ответ

1

Ваша служба возвращает массив объектов, необходимо перебрать их и добавить его к массиву,

var obj = data.data.d; 
$scope.result = obj ; 
$scope.result.forEach(function(key) { 
$scope.StockList.push(key); 
}) 
1

немного модификация принятого ответа. он будет работать. Попробуйте этот.

var obj = JSON.parse(data.data.d); 
     $scope.result = obj.data; 
     angular.forEach($scope.result, function (key) { 
      $scope.StockList.push(key); 
     }) 
Смежные вопросы