Angular - 拼接数组的麻烦

时间:2014-04-11 16:21:12

标签: javascript arrays angularjs ionic-framework

我对AngularJS很陌生,所以我确定我只是犯了一个简单的错误。

我想在var newCard = cardTypes.shift();行拼接cardTypes数组,而不是使用.shift(),所以我可以考虑我的ng-repeat索引。

.shift()可以正常使用,但如果我尝试.splice(index, 1),则根本无法获得数据。

非常感谢任何帮助。

    .controller('CardsCtrl', function($scope, $ionicSwipeCardDelegate) {
  var cardTypes = [
    { title: 'Swipe down to clear the card', image: 'img/pic.png' },
    { title: 'Where is this?', image: 'img/pic.png' },
    { title: 'What kind of grass is this?', image: 'img/pic2.png' },
    { title: 'What beach is this?', image: 'img/pic3.png' },
    { title: 'What kind of clouds are these?', image: 'img/pic4.png' }
  ];

  $scope.cards = Array.prototype.slice.call(cardTypes, 0, 0);

  $scope.cardSwiped = function(index) {
    $scope.addCard();
  };

  $scope.cardDestroyed = function(index) {
    $scope.cards.splice(index, 1);
      $scope.addCard();
  };

  $scope.addCard = function() {
    var newCard = cardTypes.shift();
    newCard.id = Math.random();
    $scope.cards.push(angular.extend({}, newCard));
  }
})

.controller('CardCtrl', function($scope, $ionicSwipeCardDelegate) {
  $scope.goAway = function() {
    var card = $ionicSwipeCardDelegate.getSwipebleCard($scope);
    card.swipe();
  };
});

1 个答案:

答案 0 :(得分:1)

你在谈论addCard功能吗?

该函数中没有'index'变量,所以也许你打算做

.splice(0,1);删除第一个?

添加'use strict';我所有的javascript文件的顶部帮我抓住了这样的问题。