如何在angularjs

时间:2016-10-15 08:22:51

标签: javascript angularjs arrays

我正在尝试绑定并显示数组的值。当我使用范围变量赋值时,如下所示:

$scope.StockList = obj.data

它运行正常,但是当我按照这个

推送数组内的值时
$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

2 个答案:

答案 0 :(得分:1)

您的服务返回一个对象数组,您需要循环它们并将其添加到数组中,

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

答案 1 :(得分:1)

对接受的答案进行一点修改。它会起作用。这个。

var obj = JSON.parse(data.data.d);
        $scope.result = obj.data;
        angular.forEach($scope.result, function (key) {
            $scope.StockList.push(key);
        })