angular5 - 将 Polymer 3 组件导入 Angular 5 项目
问题描述
我从聚合物 3 开始,我正在学习本教程https://www.polymer-project.org/1.0/start/first-element/step-5,所以基本上我有组件 js 文件如下
图标切换.js
import { PolymerElement, html } from '@polymer/polymer/polymer-element.js';
import '@polymer/iron-icon/iron-icon.js';
class IconToggle extends PolymerElement {
static get template() {
return html`
<style>
/* shadow DOM styles go here */
:host {
display: inline-block;
--icon-toggle-color: lightgrey;
--icon-toggle-outline-color: black;
--icon-toggle-pressed-color: red;
}
iron-icon {
fill: var(--icon-toggle-color, rgba(0,0,0,0));
stroke: var(--icon-toggle-outline-color, currentcolor);
cursor: pointer;
}
:host([pressed]) iron-icon {
fill: var(--icon-toggle-pressed-color, currentcolor);
}
</style>
<!-- shadow DOM goes here -->
<iron-icon icon="[[toggleIcon]]"></iron-icon>
`;
}
static get properties() {
return {
pressed: {
type: Boolean,
value: false,
notify: true,
reflectToAttribute: true
},
toggleIcon: {
type: String
}
};
}
constructor() {
super();
this.addEventListener('click', this.toggle.bind(this));
}
toggle() {
this.pressed = !this.pressed;
}
}
customElements.define('icon-toggle', IconToggle);
现在我想知道如何导入它并在 Angular 5 应用程序中使用它。
解决方案
生成一个新的 Angular 应用程序。
ng new with-polymer
从内部with-polymer
创建一个目录来存储 Web 组件。
mkdir src/app/components
将您的聚合物组件代码复制到src/app/components/icon-toggle.js
安装聚合物依赖项。
npm install @polymer/iron-icon @polymer/polymer
更新src/app/app.module.ts
导入CUSTOM_ELEMENTS_SCHEMA
并告诉 NgModule 自定义元素将被使用。
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
@NgModule({
...
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
导入. icon-toggle
_src/app/app.module.ts
import './components/icon-toggle';
添加icon-toggle
到src/app/app.component.html
.
<icon-toggle toggle-icon="star"></icon-toggle>
启动开发服务器。
npm start
请注意,您可能希望包含一些Web 组件 polyfill。
推荐阅读
- python - Python 嵌套字典和嵌套更新
- python - 如何在返回消息中获取新创建用户的名称?
- xamarin - 当我尝试上传带口罩的图像时,认知面部检测不起作用
- java - 如何强制java显示完整的堆栈跟踪
- mongodb - 使用 Homebrew 安装 mongodb-community 时出错
- javascript - JavaScript addEventListener() 外部函数在没有事件的情况下触发
- database - 数据库、数据集市、数据仓库、数据湖
- javascript - 数据集返回未定义(不在控制台中)
- javascript - 滚动时未触发 JavaScript 事件
- lisp - elisp 中的 Y 组合器