Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular NativeScript类不工作_Angular_Nativescript_Ng Class - Fatal编程技术网

Angular NativeScript类不工作

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

我有一个DockLayout和两个css类。我更改了state.sideDrawer.isOpen,但元素的类没有更改。当我
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;
}