首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为输入参数的构件动画的角度2通延迟

作为输入参数的构件动画的角度2通延迟
EN

Stack Overflow用户
提问于 2016-10-20 04:38:51
回答 2查看 2.6K关注 0票数 2

我想从html传递组件动画的延迟,例如:

html:

代码语言:javascript
复制
<circles[delay]="'10000ms'"></circles> 

ts:

代码语言:javascript
复制
@Component({
   selector: 'circles',
   templateUrl: 'app/landing-page/subcomponents/circles.component.html',
   styleUrls: ['app/landing-page/subcomponents/circles.component.css'],
    animations: [
        trigger('flyIn', [
            state('in', style({ transform: 'translateY(0)', opacity: 1 })),
            transition('void => *', [
                style({ transform: 'translateY(-100%)', opacity: 0 }),
                animate("1000ms" + this.delay)
            ])
        ])
    ]
})

export class CirclesComponent {
   @Input() private delay: string; 

但是,当我这样做时,会出现以下错误:

(SystemJS)无法读取未定义(…)的属性“延迟”

如何在不导致此错误的情况下将延迟传递给html中的组件?

EN

回答 2

Stack Overflow用户

发布于 2016-10-20 04:58:51

您正在尝试使用thisthis.delay中引用当前类,但在类之外执行此操作。注意,@Component()函数是在声明class CirclesComponent之前执行的

这不是很优雅,但是当您想设置延迟时,可以在window对象上设置一个属性

代码语言:javascript
复制
window.custom = {delay:'1000ms'}

那么在你的动画中,你可以用`window.custom来访问它吗?window.custom.delay:

代码语言:javascript
复制
animate("1000ms" + (window.custom? window.custom.delay : ""))
票数 1
EN

Stack Overflow用户

发布于 2018-08-24 06:49:59

我可能会晚一点,但这可能会对其他人有所帮助。

代码语言:javascript
复制
// Define your animations
export const fadeInDelay =
  trigger('fadeInDelay', [
    transition('void => *', [
        style({ opacity: '0' }),
        animate('250ms {{delay}}ms ease-in')
      ],
      { params: { delay: 200 } } //Fallback value; else it could crash when no delay is passed
    )
  ]);

将其加载到组件中:

代码语言:javascript
复制
@Component({
  animations: [fadeInDelay]
})
export class Component {
  ...
}

然后,您可以像这样在模板中使用它,并控制每个动画的延迟:

代码语言:javascript
复制
<div [@fadeInDelay]="{value: '', params: { delay: 1000}}"></div>
<div [@fadeInDelay]="{value: '', params: { delay: 2000}}"></div>
<div [@fadeInDelay]></div> //using fallback

别忘了传递一个值,否则它就行不通了。我希望这能帮到你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40145581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档