我修改了原始的ngAnimateSwap示例,该示例位于此处的文档输入链接描述中,使用布尔表达式而不是整数来触发幻灯片动画。
我希望横幅在"true"one_answers"false"之间旋转,但是,只有"true"出现,而"false"没有。从角度文档来看:"ngAnimateSwap是一个面向动画的指令,它允许在关联表达式发生变化时移除容器并将其输入。"所以我本以为在true和false之间的变化会导致容器动画化。
在html:中
<div class="container" ng-controller="AppCtrl">
<div ng-animate-swap="abool" class="cell swap-animation" ng-class="colorClass(abool)">
{{ abool }}
</div>
</div>
在控制器中:
$scope.abool = false;
$interval(function() {
$scope.abool = !$scope.abool
}, 1000);
$scope.colorClass = function(abool) {
return abool ? 'red' : 'blue';
};
下面是显示示例的plunkr:http://plnkr.co/edit/iKE5BekgpxOqX1YE952Z?p=preview
作为另一个测试,如果您更新到我的plunkr,将abool
更改为在1和-1之间切换,那么动画看起来就像预期的那样——在1和+1之间滑动。
当您将abool
设置为布尔值false
时,angular认为您不想对{{abool}}
进行插值。
对于您想要实现的目标,您需要布尔值的字符串值。
var abool = false;
$interval(function() {
abool = !abool;
$scope.abool = abool.toString();
$scope.colorClass = abool ? 'red' : 'blue';
}, 1000);
此外,您不需要使用ng-class
。一个简单的插值就可以了:
<div ng-animate-swap="abool" class="cell swap-animation {{colorClass}}">
{{ abool }}
</div>
正在工作的plunker。