动态添加项目到mdl菜单

时间:2016-01-01 18:17:40

标签: javascript material-design-lite

我想动态地将菜单项添加到mdl菜单。但是,我还没有弄清楚如何使用mdl注册新项目,以便它们正常工作。

这是显示不同行为的codepen。值得注意的是,动态项目没有涟漪效应,或者在点击时关闭菜单。

该代码笔在新创建的项目和原始菜单元素上使用from operator import itemgetter l = [('Product1', 9), ('Product2', 1), ('Product3', 1), ('Product4', 2), ('Product5', 3), ('Product6', 4), ('Product7', 5), ('Product8', 6), ('Product9', 7), ('Product10', 8), ('Product11', 3), ('Product12', 1), ('Product13', 2), ('Product14', 3), ('Product15', 4), ('Product16', 5), ('Product17', 6), ('Product18', 7)] cn = Counter(map(itemgetter(1), l)) print(list(cn.items())) 无效。我注意到正确创建的菜单项除了一些其他属性外还有另一个类(componentHandler.upgradeElement),但是手动添加该类,或尝试使用元素数据进行futz导致mdl中出现很多错误JavaScript的。我假设我需要对componentHandler方法进行一些正确的调用,但是我无法找到关于它与子元素的正确使用的任何文档。

1 个答案:

答案 0 :(得分:2)

这可悲的是目前非常复杂,实际上它会因为错误而出现性能问题。不推荐。

最好的办法是销毁菜单并在运行中重建它。

MDL适用于更多静态站点,建议将Polymer用于需要更复杂控制和动态构建的站点。

您也可以选择不使用我们的JS并为此需求编写自己的组件。