Angular NativeScript类不工作
我有一个DockLayout和两个css类。我更改了state.sideDrawer.isOpen,但元素的类没有更改。当我Angular NativeScript类不工作,angular,nativescript,ng-class,Angular,Nativescript,Ng Class,我有一个DockLayout和两个css类。我更改了state.sideDrawer.isOpen,但元素的类没有更改。当我console.log它的类时,我看到它得到的第一个类保持静止。我试着在.ts文件中设置它的类,结果成功了。但是我需要上课来工作。有什么不对劲吗 我正在使用最新的Angular CLI(7.2.1)和Nativescript(5.1.0) 这里是游乐场链接: 您的滑动事件是在Angular上下文之外执行的,您必须在HTML模板中使用事件绑定,或者使用向添加事件侦听器,以便A
console.log
它的类时,我看到它得到的第一个类保持静止。我试着在.ts文件中设置它的类,结果成功了。但是我需要上课来工作。有什么不对劲吗
我正在使用最新的Angular CLI(7.2.1)和Nativescript(5.1.0)
这里是游乐场链接:
您的滑动事件是在Angular上下文之外执行的,您必须在HTML模板中使用事件绑定,或者使用向添加事件侦听器,以便Angular执行更改检测
我在一个{N}角度的应用程序中遇到了类似的问题。对我来说,这个问题是因为我在.css文件中的默认类之上定义了
ngClass
css类,所以它首先被导入,然后被默认类覆盖。改变课程顺序为我解决了这个问题你能分享一个相同的操场示例吗?另外,让我们知道您现在正在测试哪个平台?我添加了请求的链接和信息。它可以工作,但我一点也不了解它。您将触发器('sideDrawerAnimate',)放在那里,但未指定要设置动画的元素。它如何知道要设置什么动画?更重要的是,您在Angular context之外执行是什么意思?我认为您对不同的方法感到困惑,因为您在元素上提到了ngClass
,每当分配新类时,动画都会在元素上发生。另一种选择是通过TS和动画API实现。你不必两者都用。我知道你意识到那些触发因素并不能解决问题。您只在元素上放置滑动事件。为什么你们要把动画放在组件里?我并没有放,是你们的代码。您可以删除这些,实际上并不需要。
<DockLayout #sideDrawer stretchLastChild="false" [ngClass]="{'sideDrawerOpen': state.sideDrawer.isOpen == true, 'sideDrawerClosed': state.sideDrawer.isOpen == false}" style="background-color: #3c3f47;width: 600px;padding: 0 0 5px 15px;"></DockLayout>
@keyframes sideDrawerOpen {
from { transform: translate(-500, 0);}
to { transform: translate(0, 0);}
}
@keyframes sideDrawerClosed {
from { transform: translate(0, 0);}
to { transform: translate(-100, 0);}
}
.sideDrawerOpen{
animation-name: sideDrawerOpen;
animation-duration: 2s;
animation-fill-mode: forwards;
}
.sideDrawerClosed{
animation-name: sideDrawerClosed;
animation-duration: 2s;
animation-fill-mode: forwards;
}