我正在尝试使用 mdc-components创建的 angular4 项目angular-cli
。所以我使用 npm 命令安装了模块
npm install material-components-web
这个安装
"material-components-web": "^0.22.0"
然后创建了一个包含滑块 HTML 标记的组件
<div #slider class="mdc-slider" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-label="Select Value">
<div class="mdc-slider__track-container">
<div class="mdc-slider__track"></div>
</div>
<div class="mdc-slider__thumb-container">
<svg class="mdc-slider__thumb" width="21" height="21">
<circle cx="10.5" cy="10.5" r="7.875"></circle>
</svg>
<div class="mdc-slider__focus-ring"></div>
</div>
</div>
在 ts 方面使用ViewChild
@ViewChild('slider') elSlider: ElementRef;
MDCSlider
并使用类包装这个元素
let mdcSlider = new MDCSlider(this.elSlider.nativeElement);
然后为文件中的同一 mdc 组件导入 sassstyles.scss
文件
@import '~@material/slider/mdc-slider';
这在 UI 上呈现了一个漂亮的材质滑块组件,它工作正常。
监听更改事件
mdcSlider.listen('MDCSlider:change', () => console.log("Value changed to ",mdcSlider.value));
并在浏览器控制台上记录滑块的当前值。
但是我对每个组件的基础和适配器类感到困惑。
从文档中,我得到了
基础类是和dom元素交互的,关于交互的名字我可以
1) 监听事件
2) 获取/设置组件的当前值
我可以将我的自定义适配器传递给基础类。
我对此有一些疑问
1)要使用组件,每次都必须使用基础类?使用自定义适配器实现?
2)除了angular2的复选框示例之外,任何显示使用基础和适配器的场景或示例?
3) 如果我必须创建自己的角度组件,是否使用基础类?