@almothafar/angular-signature-pad

中文文档
10.0.0发布于 2026/06/22MITTypeScriptES Module近 30 天下载 9.9万

Szimek/ signative pad 的角组件包装器

中文使用文档
文档目录6 节
  1. 安装
  2. 执行
  3. 用法实例
  4. 从v9.x到v10.x的迁移
  5. 从v8.x到v9.x的迁移
  6. 从v6.x迁移到v7.x

角形签名纸

npm downloads npm version npm license GitHub issues Angular 22

角组件 szimek/ 签名( p)。 。 。 .

现在支持角力22! 由独立组件和现代Angular信号API所建.

安装

npm install @almothafar/angular-signature-pad --save

执行

用法实例

API 与 API 相同 szimek/ 签名( p)。 。 。 .

选项如下 szimek/ 签名( p) 增加以下内容:

  • 帆布宽度( px)
  • 画布高度( px)

提供上述选项是为了避免从您的组件直接访问DOM来调整画布大小.

import { Component, viewChild } from '@angular/core';
import { SignaturePadComponent, NgSignaturePadOptions } from '@almothafar/angular-signature-pad';

@Component({
  selector: 'app-signature',
  standalone: true,
  imports: [SignaturePadComponent],
  template: `
    <signature-pad
      [options]="signaturePadOptions"
      (drawStart)="drawStart($event)"
      (drawEnd)="drawComplete($event)"
      (drawClear)="drawCleared()" />
  `
})
export class SignaturePadPage {

  public signaturePad = viewChild(SignaturePadComponent);

  public signaturePadOptions: NgSignaturePadOptions = { // passed through to szimek/signature_pad constructor
    minWidth: 5,
    canvasWidth: 500,
    canvasHeight: 300
  };

  ngAfterViewInit() {
    // this.signaturePad() is now available
    this.signaturePad().set('minWidth', 5); // set szimek/signature_pad options at runtime
    this.signaturePad().clear(); // invoke functions from szimek/signature_pad API
  }

  drawComplete(event: MouseEvent | Touch) {
    // will be notified of szimek/signature_pad's onEnd event
    console.log('Completed drawing', event);
    console.log(this.signaturePad().toDataURL());
  }

  drawStart(event: MouseEvent | Touch) {
    // will be notified of szimek/signature_pad's onBegin event
    console.log('Start drawing', event);
  }

  drawCleared() {
    // will be notified when clear() is called on the pad
    console.log('Pad cleared');
  }
}

从v9.x到v10.x的迁移

角地二十二相辅. 对等依赖范围保持不变(Angular) >=20.0.0),因此Angular 20/21上已有的v9消费者继续工作——没有API更改. 图书馆现在从Angular 22工具链起航,并且完全无区相容. 升级不需要修改代码.

从v8.x到v9.x的迁移

角19号投下 ——目前最小的同级依赖是Angular 20.0.0+.

drawEnd 不再发出 null {\fn华文楷体\fs16\1che0e0e0}安全. 如果你正在检查一个 null 事件发生时 drawEnd 处理器以检测清除后, 切换到新的专用 drawClear 输出 :

在(v8.x)之前:

<signature-pad (drawEnd)="onDrawEnd($event)"></signature-pad>
onDrawEnd(event: MouseEvent | Touch | null) {
  if (!event) {
    // pad was cleared
  }
}

在(v9.x)之后:

<signature-pad (drawEnd)="onDrawEnd($event)" (drawClear)="onDrawCleared()" />
onDrawEnd(event: MouseEvent | Touch) { }

onDrawCleared() {
  // pad was cleared
}

options 现在是一个 model() 信号,允许可选双向绑定:

<!-- one-way (as before) -->
<signature-pad [options]="myOptions" />

<!-- two-way (new) -->
<signature-pad [(options)]="myOptions" />

从v6.x迁移到v7.x

在v7.x中,该组件现在是独立的. 更新您的导入 :

在(v6.x)之前:

import { AngularSignaturePadModule } from '@almothafar/angular-signature-pad';

@NgModule({
  imports: [AngularSignaturePadModule]
})

在(v7.x)之后:

import { SignaturePadComponent } from '@almothafar/angular-signature-pad';

@Component({
  standalone: true,
  imports: [SignaturePadComponent]
})

或者如果你还在使用NgModule:

import { SignaturePadComponent } from '@almothafar/angular-signature-pad';

@NgModule({
  imports: [SignaturePadComponent]
})

版本与发布记录

@almothafar/angular-signature-pad 共发布 14 个版本,首次发布于 2020/12/23;过去 12 个月发布了 5 个版本。

版本发布日期距今
10.0.0latest2026/06/224 个月前
9.0.02026/04/156 个月前
8.0.02025/12/0111 个月前
7.0.02025/12/0111 个月前
6.0.12025/12/0111 个月前
6.0.02024/11/022 年前

关于 @almothafar/angular-signature-pad 的常见问题

@almothafar/angular-signature-pad 是什么?

Szimek/ signative pad 的角组件包装器

如何安装 @almothafar/angular-signature-pad?

在项目目录运行 npm install @almothafar/angular-signature-pad,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@angular/common(>=20.0.0)、@angular/core(>=20.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@almothafar/angular-signature-pad 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@almothafar/angular-signature-pad 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@almothafar/angular-signature-pad 可以商用吗?

@almothafar/angular-signature-pad 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@almothafar/angular-signature-pad 的下载量有多少?

根据 npm 官方下载统计,@almothafar/angular-signature-pad 在 2026/10/06 – 2026/11/04 这 30 天内被下载 98,604 次,日均约 3,287 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@almothafar/angular-signature-pad 还在维护吗?

最新版本 10.0.0 发布于 2026/06/22(4 个月前);至今共发布 14 个版本,其中过去 12 个月发布了 5 个;首次发布于 2020/12/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。