angular-element-自定义标签
一. 什么是angular自定义标签?
angular自定义标签,就是将angular里面的某些component转换成一个自定义标签,这个标签可以在任何平台使用,而不依赖angular,真的做到了跨平台使用。
二. 如何使用angular自定义标签?
有一些可以借鉴的网站可以先看下:
angular 官方地址:https://angular.io/guide/elements
链接1. https://tso1158687.github.io/blog/2020/04/06/introduce-to-angular-elements/
链接2. https://fullstackladder.dev/blog/2018/05/08/angular-advanced-angular-elements-intro/
步骤:
1. 在angular项目中添加angular elements
ng add @angular/elements
2. 修改app.module.ts
@NgModule({
declarations: [...],
imports: [...],
providers: [...],
bootstrap: [AppComponent]
})
移除掉 bootstrap: [AppComponent]
并修改为:
export class AppModule { constructor(injector: Injector) { const RevisedSearchElement: any = createCustomElement(RevisedSearchComponent, { injector }); customElements.define('revised-search', RevisedSearchElement); } ngDoBootstrap() {} }
3. 修改index.html
<body>
<app-root></app-root>
</body>
为
<body> <revised-search></revised-search> </body>
这样的话,在anguar 的index页面就引用了自定义标签 <revised-search></revised-search>,可以成功运行
4. 如果想在非当前的angular项目中使用这个自定义标签:
a. 修改package.json ,去掉打包时候的hash
"build": "ng build --prod --output-hashing=none",
b. 如果是Mac或者是Linux, package.json中添加,这样可以将几个js文件打包成一个js文件
cat dist/hello-angular-elements/{runtime-es2015,polyfills-es2015,main-es2015}.js > all.js
c. 如果是windows,则在dist文件夹目录下使用git bash 命令:
cat {runtime,polyfills,main}.js > revised-search.js
5. 这样在新项目中就可以直接引入revised-search.js, 并且使用<revised-search></revised-search>标签了.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <base href=""> <title>element test</title> <link rel="stylesheet" type="text/css" href="styles.css"/> </head> <body> <revised-search class="revisedSearch"></revised-search> <script type="text/javascript" src="revised-search.js"></script> </body> </html>
注意事项:
1. 一定要在app.module.ts中引入translate.service
export class AppModule { constructor( injector: Injector, private translateService: TranslateService ) { translateService.setDefaultLang('en'); const RevisedSearchElement: any = createCustomElement(RevisedSearchComponent, { injector }); customElements.define('revised-search', RevisedSearchElement); } ngDoBootstrap() {} }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现