遍历JavaScript数组对象时,ng-repeat不起作用

时间:2016-02-13 06:52:35

标签: javascript php html arrays angularjs

这是我的控制器代码

N::a

基本上我有一个PHP页面,我获取用户值并动态地向$ scope.orders数组添加元素。

然后显示我正在使用此代码的数组元素

var myApp = angular.module('myApp',[]);
myApp.controller('restaurantController',['$scope','$http', function($scope, $http){
    $http.get($scope.something).success(function (data){
        $scope.items = data;
    });
    $scope.orders = [];
    $scope.process = function(item){
        var cart = '{"name":"'+item.name+'","price":"'+item.quantity*parseInt(item.price)+'","quantity":"'+item.quantity+'"}';
        $scope.orders.push(cart);
    }
}]);

在我的PHP页面中。但没有显示任何内容。

1 个答案:

答案 0 :(得分:1)

小心你没有在$scope.orders数组中推送对象,你正在推动对象的字符串化版本。

与PHP不同,JavaScript解释并指出如何使用和浏览JSON对象。试试这个:

var myApp = angular.module('myApp',[]);

myApp.controller('restaurantController',['$scope','$http', function($scope, $http){
  $scope.orders = [];

  $http.get($scope.something)    // .success() is deprecated use .then() instead
    .then(function ( data ) {
      $scope.items = data;
    },
    function ( err ) {
      $scope.items = [];
    });

  $scope.process = function(item){
    var cart = { 
      name      : item.name,
      price     : item.quantity * parseFloat(item.price), 
      quantity  : item.quantity 
    };

    // Use .parseFLoat() because item price may not be an integer

    $scope.orders.push(cart);
  }
}]);

然后你就可以遍历$scope.orders数组。