我对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();
};
});
答案 0 :(得分:1)
你在谈论addCard功能吗?
该函数中没有'index'变量,所以也许你打算做
.splice(0,1);删除第一个?
添加'use strict';我所有的javascript文件的顶部帮我抓住了这样的问题。