Angularjs 在新范围内新创建的指令$compile不显示动画

Angularjs 在新范围内新创建的指令$compile不显示动画,angularjs,angularjs-directive,css-transitions,ng-animate,angularjs-compile,Angularjs,Angularjs Directive,Css Transitions,Ng Animate,Angularjs Compile,我有一个switcher指令,它有一个方法,可以创建一个新的作用域,并在其上使用$compile,用另一个指令lister替换其元素 例如,lister指令包含一个在新范围内迭代的ng repeat 我尝试在使用ng enter和ng leave类创建新创建的lister指令后,立即对其进行动画处理,但它没有任何效果,或者看起来是这样 是否可以为使用$scompile动态创建的指令设置动画?如果是,我错过了什么 代码在中。您的选择器是问题所在:- 它应该是.list指令li,因为li是重复的 .

我有一个
switcher
指令,它有一个方法,可以创建一个新的作用域,并在其上使用
$compile
,用另一个指令
lister
替换其
元素

例如,
lister
指令包含一个在新范围内迭代的ng repeat

我尝试在使用
ng enter
ng leave
类创建新创建的
lister
指令后,立即对其进行动画处理,但它没有任何效果,或者看起来是这样

是否可以为使用
$scompile
动态创建的指令设置动画?如果是,我错过了什么


代码在中。

您的选择器是问题所在:-

它应该是
.list指令li
,因为li是重复的

.list-directive li.ng-enter,
.list-directive li.ng-leave {
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    transition: all 1s ease;
}
.list-directive li.ng-enter {
    margin-left: 200px;
    opacity: 0;
}

.list-directive li.ng-leave,
.list-directive li.ng-enter-active {
    margin-left: 0;
    opacity: 1;
}
.list-directive li.ng-leave-active {
    margin-left: -200px;
    opacity: 0;
}


或者在
li的
上应用一个类并对其应用规则

这是可行的,但为什么呢?如果我手动将边距左侧样式应用于.list指令div,它将有效地移到右侧。为什么我不能对动画做同样的操作?编辑了我的问题,对不起:)@janesconference对不起,我不明白你的问题是什么。左边距是css动画中唯一的右边距?好吧,让我们说:如果我想在实际ng重复之前设置列表单词的动画,该怎么办?或者,如果
lister
指令非常复杂,我只想对容器div进行动画处理,以对其中包含的所有内容进行动画处理?@janesconference,这是因为ng animate将类应用于属于ng repeat/ng show/ng hide一部分的项。。等当您只是向DOM中添加一些内容时,ng repeat如何对其设置动画,除非您在容器上切换某些属性(如ng show)并对其应用规则?