首先让我说 mdc 文档对于像我这样的非专业人士来说很难。
我正在使用 Elixir Phoenix 和 Brunch。我进口,一切都很好。
import {MDCTab, MDCTabFoundation} from '@material/tabs'; import
{MDCTabBar, MDCTabBarFoundation} from '@material/tabs'; import
{MDCTabBarScroller, MDCTabBarScrollerFoundation} from
'@material/tabs';
我在导出的单独函数中手动实例化选项卡栏
export var Tabbable = {
run: function(MDCTabBar, el){
var myDynamicTabBar = window.myDynamicTabBar = new MDCTabBar(document.querySelector('#' + el));
遵循这样的文档
const tabBar = new MDCTabBar(document.querySelector('#my-mdc-tab-bar'));
但与文档在其代码片段中使用标签栏略有不同
var dynamicTabBar = window.dynamicTabBar = new mdc.tabs.MDCTabBar(document.querySelector('#dynamic-tab-bar'));
但是,每当我尝试使用 mdc 时,都会出现“未定义”错误。因此,我没有使用它:-)
现在,当用户单击标签栏时,我会这样捕获:
myDynamicTabBar.listen('MDCTabBar:change', function ({detail: tabs}) {
var nthChildIndex = tabs.activeTabIndex;
updatePanel(nthChildIndex);
});
细微的区别是我的 myDynamicTabBar 是 MDCTabBar 但文档的 dynamicTabBar 是 mdc.tabs.MDCTabBar
我的选项卡控件有效,但它引发了仅在控制台中可见的错误:
未捕获的错误:作为 activeTab 给出的无效选项卡组件:在此组件的选项卡列表中找不到选项卡
这可能是因为我没有使用mdc.tabs
?文档指出更改事件发生在 MDCTabBar 上。
因此,如何摆脱控制台中这个恼人的错误?
为什么我无法访问全局 mdc?我在我的早午餐文件中试过这个
globals: { mdc: "@material"}
但不好。