将一个数组推入一个数组,得到一个字符串

时间:2016-10-17 14:43:25

标签: javascript angularjs arrays

Edit2 :有问题 - 重复一个数组,因为它是一个数组被推入一个数组,所以我被建议使用concat()而不是push(),现在它似乎工作,但现在问题是ng-repeat完全停止工作,它根本不重复。

控制器

$scope.table = new Array();
$scope.gallery = new Array();
$scope.add = function(inserzione) {
  $scope.table = [];
  $scope.table.push(inserzione);
  $scope.gallery = $scope.gallery.concat(inserzione.galleria);
  $location.path('dettagli');
  $timeout((function() {
     $window.scrollTo(0, 0);
  }), 300);
};

$scope.remove = function(inserzione) {
  $scope.table = [];
  $scope.gallery = [];
  $location.path('/');
  $timeout((function() {
    $window.scrollTo(0, 0);
  }), 300);
};

<div class="row">
  <div class="col-xs-12" ng-repeat="immagine in gallery"><img class="img-responsive center-block" ng-src="{{immagine}}"/></div>
</div>

plnkr

修改plnkr

所以..我认为现在需要一些解释。

我有一个函数,其中来自数组的一些数据被推送到另一个数组,但无论我如何操作它们(toString / replace / split / arrayFrom madness)我总是得到一个字符串。

预期:[&#34; img1&#34;,&#34; img2&#34;]

实际上:[[&#34; img1&#34;,&#34; img2&#34;]]

controller.js

(function() {
  (function() {
    var AggregateController;
    AggregateController = function($http, $scope, $window, $timeout) {
      var vm;
      vm = this;
      vm.inserzioni = new Array();
      $http.get("inserzioni.json").success(function(data) {
        vm.inserzioni = data;
      });
      $scope.table = new Array();
      $scope.gallery = new Array();
      $scope.add = function(inserzione) {
        $scope.table = [];
        $scope.table.push(inserzione);
        $scope.gallery.push(inserzione.galleria.toString().replace(/\["\]/g, '').split(','));
        $scope.gallery = Array.from($scope.gallery);
        $location.path('dettagli');
        $timeout((function() {
          $window.scrollTo(0, 0);
        }), 300);
      };
      $scope.remove = function(inserzione) {
        var index;
        index = $scope.table.indexOf(inserzione);
        $scope.table.splice(index, 1);
        $location.path('/');
        $timeout((function() {
          $window.scrollTo(0, 0);
        }), 300);
      };
    };
    AggregateController.$inject = ['$http', '$scope', '$window', '$timeout'];
    angular.module('realEstate').controller('AggregateController', AggregateController);
  })();

}).call(this);

inserzioni.json

[
  {
    "data": "08/10/2016",
    "titolo": "CSCIV100",
    "localita": "Centro Storico",
    "tipologia": "Casa indipendente",
    "contratto": "Vendita",
    "camere": 3,
    "bagni": 2,
    "prezzo": 100000,
    "fascia": "40-100",
    "copertina": "./img/CSCIV100.jpg",
    "galleria": [
      "./img/CSCIV100.jpg",
      "./img/CSCIV100.jpg"
    ]
  }
]

0 个答案:

没有答案