我有一个won
在我的控制器中调用的变量,它可以打开和关闭,但 ng-show 不是动态隐藏/显示元素。为什么?它似乎在我最初设置时有效,won = false/true
但在应用程序运行时无效。
<div class='container' ng-controller='CardsCtrl'>
<div class='win' ng-show='won'>
<img ng-src='images/win.gif'>
</div>
<div ng-show='!won' ng-repeat='card in cards' ng-click='card.flipped || changeState(card)'
ng-class="{'card' : !card.flipped, 'card flipped': card.flipped}">
<img ng-src='{{card.back}}' class='back side'>
<div class='face side'>
<img ng-src='{{card.logo}}' class='logo'>
</div>
</div>
</div>
var memoryApp = angular.module('memoryApp', []);
memoryApp.controller('CardsCtrl', function ($scope, $timeout){
var won = $scope.won = false;
var cards = $scope.cards = [];
var current_cards = [];
var checkingCards = $scope.checkingCards = false;
var logos = _.shuffle([0,0,1,1,2,2,3,3,4,4,5,5]);
for (var i = 0; i < 12; i++){
new_card = new Card(logos[i]);
// $interval(new_card.oscillate, 2000);
cards.push(new_card);
}
cards = _.shuffle(cards);
$scope.changeState = function (card) {
won = !won;
console.log(won);
// if (checkingCards){
// return;
// }
// card.flip();
// current_cards.push(card);
// if (current_cards.length === 2){
// checkingCards = true;
// $timeout(compareCards, 1500);
// }
}
function compareCards(){
if (!current_cards[0].compare(current_cards[1])){
current_cards[0].flip();
current_cards[1].flip();
}
if (checkWon()){
won = true;
}
current_cards = [];
checkingCards = false;
console.log(won);
}
function checkWon(){
for (var i = 0; i < cards.length; i++){
if (cards[i].flipped === false){
return false;
}
}
return true;
}
});