【发布时间】:2018-04-05 02:08:21
【问题描述】:
我正在尝试 mdc-components 使用 angular-cli 创建的 angular4 项目。所以我使用 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);
然后在styles.scss文件中为同一个mdc组件导入sass文件
@import '~@material/slider/mdc-slider';
这在 UI 上呈现了一个漂亮的材质滑块组件,并且效果很好。
监听变化事件
mdcSlider.listen('MDCSlider:change', () => console.log("Value changed to ",mdcSlider.value));
并在浏览器控制台上记录滑块的当前值。
但我对每个组件的 foundation 和 adapter 类感到困惑。
从文档中,我得到了
基础类是和dom元素交互的,名字就可以交互了
1) 监听事件
2) 获取/设置组件的当前值
我可以将我的自定义适配器传递给基础类。
我对此有一些疑问
1) 要使用组件,每次都必须使用基础类?使用自定义适配器实现?
2) 除了 angular2 的复选框示例之外,任何显示使用基础和适配器的场景或示例?
3) 如果我必须创建自己的角度组件,是否使用基础类?
【问题讨论】:
-
所有问题都与特定问题相关并相关
-
这里是核心贡献者,请允许这个问题暂停,以便我回答。
-
@WrksOnMyMachine 这个问题被搁置了,你现在可以回答了。
-
这个问题有什么理由值得重新讨论吗?