小编Edd*_*Lin的帖子

关于何时在TypeScript中调用装饰器的困惑

我一直认为TypeScript中的装饰器是在类的构造函数之后调用的.但是,我被告知,例如,这篇文章的最高答案声称在声明类时调用Decorator,而不是在实例化对象时调用.我注册的Angular课程的Udemy讲师也告诉我,Typescript中的装饰器在属性初始化之前运行.

但是,我在这个问题上的实验似乎表明不是这样.例如,这是一个带有属性绑定的简单Angular代码:

test.component.ts

import { Component, Input } from '@angular/core';

@Component({
  selector: 'app-test',
  template: '{{testString}}'  
})
export class TestComponent{    
  @Input() testString:string ="default string";    
  constructor() {
    console.log(this.testString);
   }       
}
Run Code Online (Sandbox Code Playgroud)

app.component.html

<app-test testString="altered string"></app-test>
Run Code Online (Sandbox Code Playgroud)

当我执行代码时,控制台记录"默认字符串"而不是"更改字符串".这证明了在类的构造函数执行后调用decorator.

有人可以给我一个明确的答案,说明何时调用装饰器?因为我在网上的研究与我做的实验相矛盾.谢谢!

javascript decorator typescript angular

7
推荐指数
1
解决办法
2545
查看次数

如何在 Angular 中将 ngStyle 设置为默认值

这是我的 html 的一部分:

<div class="container"> 
Run Code Online (Sandbox Code Playgroud)

这是相关的 CSS 部分:

.container{
width:100%;
height: 45px;}

@media (min-width: 768px) { 
.container{
height:60px;}
Run Code Online (Sandbox Code Playgroud)

现在我想通过 ngStyle 将这个 div 的样式绑定到一个属性。我在 app.component.ts 中有一个名为 的属性isShrinked,当 时isShrinked===true,我希望 div 的高度为 10px,否则高度将是类的 css 样式设置的默认值container

现在我阅读了有关ngStyle 的Angular 文档,但找不到实现此目的的正确语法。我能做的最接近的是添加类似的内容[ngStyle]="{'height': isShrinked?'10px':''}"但这显然不起作用,因为我必须在这个三元表达式的右侧给出一个值,这不是我打算做的。

有人可以帮助我吗?

html javascript typescript ng-style angular

2
推荐指数
1
解决办法
3531
查看次数

标签 统计

angular ×2

javascript ×2

typescript ×2

decorator ×1

html ×1

ng-style ×1