使用Angular Elements能否开发可与后端交互的可嵌入widget?
方案可行性确认
可以使用Angular Elements实现支持后端数据交互的Quiz嵌入Widget,该方案完全适配你的需求:
Angular Elements本质是将Angular组件封装为符合Web Components标准的自定义元素,打包后生成的独立JS文件自带所有运行依赖,不会和第三方嵌入站点的现有代码产生冲突。组件内部的逻辑和普通Angular应用没有区别,你可以正常实现所有后端交互逻辑。
核心实现要点
- 编写Quiz组件时,直接引入
HttpClientModule,按照常规Angular应用的写法实现GET请求拉取题目、POST请求提交答案的逻辑即可,不需要做额外适配 - 组件开发完成后,调用
@angular/elements包提供的createCustomElement方法将组件注册为自定义标签,打包时可以将所有依赖合并输出为单个JS文件,第三方站点只需引入该JS,就可以通过你定义的自定义标签直接嵌入Widget - 你还可以给自定义元素配置输入、输出属性:既可以支持第三方站点传入自定义参数(比如题目分类、用户唯一标识等),也可以将答案提交完成、答题结束等事件抛给外层站点监听
参考资料查询路径
- Angular官方文档的「Angular Elements」专区有完整的组件注册、打包、使用的官方教程,也包含组件内调用服务(包括HTTP请求服务)的示例代码
- 可在Angular官方文档的开发指南板块搜索HTTP请求、自定义元素相关的实践案例,也可以查阅Web Components标准文档确认自定义元素的兼容性规则
- 如需处理跨域问题,直接查阅Angular
HttpClient的跨域配置相关文档即可,处理逻辑和普通Angular应用完全一致
内容的提问来源于stack exchange,提问作者Shayan Hasan Khan
相关产品推荐
相关产品推荐

