上云无忧 > 文档中心 > 百度智能云爱速搭低代码平台 - Angular组件
爱速搭低代码平台
百度智能云爱速搭低代码平台 - Angular组件

文档简介:
React、Vue、jQuery 组件都可以通过自定义组件的方式引入,但 Angular 不行,因为 Angular 本身是一个框架,它除了 UI 以外还内置了路由和数据请求等功能,导致 Angular 组件并不能直接嵌入到其它框架中。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

React、Vue、jQuery 组件都可以通过自定义组件的方式引入,但 Angular 不行,因为 Angular 本身是一个框架,它除了 UI 以外还内置了路由和数据请求等功能,导致 Angular 组件并不能直接嵌入到其它框架中。

目前要嵌入 Angular 组件,需要进行三步操作:

  1. 对 Angular 组件进行改造,支持打包为 Web Component
  2. 在爱速搭应用设置中引入外部 JS/CSS
  3. 在页面编辑器中引入 Web Component 组件

下面具体说明每一步的操作

Angular 组件改造

改造细节请参考官方文档,改造完后的 Angular 组件就能嵌入到任意页面中。

除了编译为 Web Component,在还有个需要注意的地方是 service 的调用,在普通 Angular 项目中数据请求一般是通过 service 实现的,UI 组件不关心,但打包成 Web Component 组件后无法修改内部实现,因此需要将 service 外部接口所需的配置也放在组件属性配置中,比如下面这个组件示例

@Component({ selector: "my-select", templateUrl: "./select.component.html", }) export class 
SelectComponent { users: User[] = []; constructor( private userService: UserService ) { } ngOnInit() 
{ this.users = this.userService.getItems(); } }

数据获取接口是通过外部 UserService,组件本身并不知道数据是从哪获取的,这个组件打包成 Web Component 后,对外使用时就是下面的形式

<my-select></my-select>

内部 api 地址被封装起来了,导致无法更改,也无法使用爱速搭平台的后端代理功能,因此我们需要做如下改造

@Component({ selector: "my-select", templateUrl: "./select.component.html", }) export class
 SelectComponent { @Input() api: string; users: User[] = []; constructor( private http: 
HttpClient ) { } ngOnInit() { this.users = this.http.get(this.api); } }

上面改造的要点是将 api 变成组件属性,这时使用组件就能通过如下形式,是的组件可以控制 api 来源

<my-select api="http://xxx"></my-select>

改造完成后续需要使用 npm run build 打包成 js 文件。

打包完后,需要测试一下页面中放入该组件是否能正常运行,测试页面类似如下

<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Elements</title>
 </head> <body> <my-select></my-select> <script src="runtime-es5.3d14b3ad980d82
585080.js"></script> <script src="polyfills-es5.31618c6906826ad6deb8.js"></script> 
<script src="main-es5.3745a270d0c7c1fecdf6.js"></script> </body> </html>

确认没问题后就可以进入下一步了

应用引入外部依赖

经过前面的改造和编译后,一般会有如下文件产出(不同版本的 Angular 可能会有区别):

3rdpartylicenses.txt
favicon.ico
index.html
main-es2017.1a27f1fc3b52e01f2273.js
main-es5.1a27f1fc3b52e01f2273.js
polyfills-es2017.79d8baa3acf5316d4e1a.js
polyfills-es5.31618c6906826ad6deb8.js
runtime-es2017.3d14b3ad980d82585080.js
runtime-es5.3d14b3ad980d82585080.js
styles.5abc20b315a4b266fdb5.css

其中我们只需要 es5 相关的 runtime-es5.xx.js polyfills-es5.xx.js 和 main-es5.xx.js。

将这几个文件上传到用户浏览器可以访问的 CDN 上。

进入「应用设置」-「外链 JS/CSS」中,将这前面上传的文件地址添加进来,如图所示

添加完后需要刷新页面才会生效。

在页面编辑器中引入 Web Component

进入页面编辑器,在左侧组件列表中找到「Web Component」,添加到页面中,通过右侧属性面板修改它的标签及属性。

这样就完成了 Angular 组件在页面中的显示。

相似文档
  • 模型组件简介: 目前爱速搭平台支持的模型组件有两种,模型列表和模型表单, 分别对应增删改查列表和单条数据的填写/查看/更新等功能 模型组件的使用方法: 在关系型数据库中新建一个数据模型。
  • 多端编辑模式: 页面编辑器默认打开 PC 页面编辑环境,如需配置手机端页面需要先切换到手机页面模式。点击顶部全局工具的【手机】即可进行切换,再次点击为返回 PC 模式。
  • 除了使用爱速搭内置的组件以外,还可以通过创建自定义组价,扩充可使用的组件。 前提条件: 需要对 amis 整体概念有一定的了解,可以查看 这里。 需要有一定的 JavaScript 基础。 至少能够熟练使用 React、Vue、jQuery 中任意一门框架。
  • 此功能可以将在爱速搭制作的页面,快速嵌入到已有业务系统中。采用的是 jssdk 模式,相比 iframe,有更好的用户体验,比如弹框是直接弹出在整个页面而不是只能在 iframe 内部。 此功能整合成本较低,适用于所有前端框架(包括微前端),引入一段 js 代码片段即可完成指定容器(div)的页面渲染。(如果是 React,还可以当成内部组件一样使用。)
  • 爱速搭支持丰富的页面管理功能,支持页面便捷预览和编辑。平台支持 7 中页面类型: 普通页面:支持自定义,拖拽组件完成配置,适合所有页面场景,同时支持自定义前端组件能力满足个性化需求。 模型页面:数据模型一键生成,支持列表视图、新增视图、编辑石头、详情视图,每个页面可以单独配置,适合数据收集、数据展示等页面场景。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部