小编And*_*ard的帖子

2022 年 1 月 1 日的年份错误

我使用 Angular 自己的日期管道来格式化日期。然而,当涉及到特定日期时,我发现了一个错误:2022 年 1 月 1 日

如果您访问= https://stackblitz.com/edit/angular-ivy-qrnysm?file=src%2Fapp%2Fapp.component.ts

你会看到我有 2 个日期: 2022-01-012022-01-02。在模板中,他们都使用| date:'dd/MM/YYYY':'GMT'. 但第一个日期格式为= 01/01/2021(错误年份),但第二个日期格式为02/01/2022(正确年份)。

还有其他人经历过吗?这是 stackblitz 中的代码:

formattedIssueDate1: Date = new Date("2022-01-01T00:00:00Z");
formattedIssueDate2: Date = new Date("2022-01-02T00:00:00Z");

<p>
  This is date 1: {{formattedIssueDate1 | date:'dd/MM/YYYY':'GMT'}}
</p>
<p>
  This is date 2: {{formattedIssueDate2 | date:'dd/MM/YYYY':'GMT'}}
</p>
Run Code Online (Sandbox Code Playgroud)

angular

17
推荐指数
2
解决办法
3301
查看次数

将 .next() 与 takeUntil 一起使用时的参数

我最近注意到在升级我的 rxjs 版本后,您不能再像下面那样使用该.next()方法:this.ngUnsubscribe$.next();

export class TakeUntilComponent implements OnDestroy {
  // Our magical observable that will be passed to takeUntil()
  private readonly ngUnsubscribe$: Subject<void> = new Subject<void>();

  // Our subject that we will subscribe to
  subjectA$: Subject<number> = new Subject<number>();

  constructor() {
    this.subjectA$
      .pipe(takeUntil(this.ngUnsubscribe$))
      .subscribe(value => {
      // logic goes here ...
    });
  }

  ngOnDestroy(){
    // Emit a value so that takeUntil will handle the closing of our subscriptions;
    this.ngUnsubscribe$.next();
    // Unsubscribe from our unsubscriber to avoid creating …
Run Code Online (Sandbox Code Playgroud)

rxjs angular

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

Angular 2获取div的宽度

我看了很多帖子,但没有完全按照我的意愿去做.我有一张超出页面宽度的桌子,由于各种原因我需要得到它的宽度.

我用了:

@ViewChild('tableToMeasure') elementView: ElementRef;
Run Code Online (Sandbox Code Playgroud)

然后将#tableToMeasure放在桌面上.然而,这似乎是错误的:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'nativeElement' of undefined
Run Code Online (Sandbox Code Playgroud)

即使这适用于页面的父div,也只能在页面的父div上工作.

有任何想法吗?我需要在页面加载和页面调整大小上获得它的宽度,并将另一个divs宽度更改为相同的值.

typescript angular

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

在HTML5 Canvas中分层的最佳方式?

如果你需要在HTML5画布上的不同层上工作,最好的方法是什么?我看到有些人决定使用position:absolute将多个画布叠加在一起.这是最好的方法吗?

javascript html5 html5-canvas

6
推荐指数
1
解决办法
1408
查看次数

Angular 2 - typescript中的window.print是什么

在javascript我可以做:

window.print()
Run Code Online (Sandbox Code Playgroud)

打开打印机对话框,但是如何在打字稿中执行此操作?

typescript angular

6
推荐指数
2
解决办法
4320
查看次数

Angular 2使用三元运算符分配单击函数

我想应用点击功能:

setPage(page - 1)
Run Code Online (Sandbox Code Playgroud)

但只有在这种情况符合时:

page > 1
Run Code Online (Sandbox Code Playgroud)

我以为我可以这样做,但它不起作用,任何想法?

<a (click)="{'setPage(page - 1)' : page > 1}">Previous</a></li>
Run Code Online (Sandbox Code Playgroud)

javascript angular

5
推荐指数
1
解决办法
3682
查看次数

对Phaser js的组中的每个对象应用一个动作

正如它所说,在Phaser.js中,如何为组内的每个对象应用一个动作.我想对每个项目应用以下行:

game.physics.arcade.collide(something, platforms);
game.physics.arcade.overlap(player, something, gameOver, null, this);
something.body.velocity.x = -120;
Run Code Online (Sandbox Code Playgroud)

"Something"是对象名称,但我的组名称为"obstacleGroup".我想这样做,因为我有另一个功能一直向组创建新对象,所以我不一定知道它们被称为什么.

javascript phaser-framework

4
推荐指数
2
解决办法
9614
查看次数

Jquery确定加载的加载时间是否超过设定的时间

我是外部页面内容的AJAXing.大多数情况下,负载不到一秒钟,但有没有一种方法我可以淡入div(假设一个预加载div),如果说负载超过3秒就会出现?所以像这样......

$targetPoint.load($dataImportURL + " " +$rawCollectionPoint,function(){
    if (($(this).load >= 3))
    {
        alert ("Its taken more than 3 seconds to load");
    }                       
});
Run Code Online (Sandbox Code Playgroud)

jquery load

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

对反应式数组进行排序

我已经成功构建了一个反应式表单,但我希望使用自定义管道对结果进行排序:

<tr *ngFor="let record of myForm.controls.openingHoursForm.controls | sort: 'When'; let c=index; let first = first; let last = last;" [formGroupName]="c">
                        <td><input type="text" formControlName="Heading" class="openingTimesField" /></td>
                        <td><input type="text" formControlName="Subheading" class="openingTimesField" /></td>
                        <td><input type="text" formControlName="When" class="openingTimesField" /></td>
                        <td><input type="text" formControlName="Times" class="openingTimesField" /></td>
                        <td><input type="text" formControlName="Emphasis" class="openingTimesField" /></td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

我的自定义管道如下所示:

import { Pipe } from "@angular/core";

@Pipe({
    name: "sort"
})
export class ArraySortPipe {
    transform(array: Array<string>, args: string): Array<string> {
        if (array !== undefined) {
            console.log(array);
            array.sort((a: any, b: any) => {
                if …
Run Code Online (Sandbox Code Playgroud)

angular

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

根据方位计算x和y

我有一个屏幕,我想根据角度计算下一个x和y。第一个足迹是从第1步开始的示例。如何计算下一个足迹,在该足迹上我要增加120,而旁边的足迹需要编织进出约60。

在此处输入图片说明

请记住,起点可以是x = 100,y = 100,角度为180,因此足迹必须沿着y轴上移。

我尝试了以下Javascript,但足迹似乎很困惑:

this.startingFootPrintX = Math.floor(Math.random() * 1000) + 20; //Random number between 20 and 1000
this.startingFootPrintY = Math.floor(Math.random() * 560) + 20; //Random number between 20 and 560
this.startingAngle = Math.floor(Math.random() * 340) + 20; //Random number between 20 and 340

startFootSteps();

startFootSteps(){
console.log(this.startingFootPrintX);
console.log(this.startingFootPrintY);

this.startingFootPrintX = Math.round(Math.cos(this.startingAngle * Math.PI / 180) * 120 + this.startingFootPrintX);
this.startingFootPrintY = Math.round(Math.sin(this.startingAngle * Math.PI / 180) * 60 + this.startingFootPrintY);

setInterval(function () {
startFootSteps();
}, 3000);
}
Run Code Online (Sandbox Code Playgroud)

javascript math geometry trigonometry rotation

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