1、首先直接參照官網Demo例子,將代碼拷貝進項目中運行,
直接報錯:
Cannot read property 'mode' of undefined.
然后查看官網介紹,有一行注意文字,好吧。
2、然后將Menu標簽改為i-menu.
這下沒有報錯了,但是樣式顯示的根本不是想要的:
什么個鬼,然后官網也沒有其他什么說明了。。。。
OK,找度娘查找資料,找到這篇文章:http://wallimn.iteye.com/blog/2400663
原來還有幾個標簽必須得改掉才行:
1、MenuItem 修改為: Menu-Item
2、 <Icon type="ios-paper" /> 修改為:<Icon type="ios-paper" ></Icon> (標簽必須寫完整,Icon標簽后文字顯示不出來,這是什么騷操作。。。。)
3、RadioGroup 修改為: Radio-Group
修改為之后,效果OK了,真是坑,按照官網介紹,並沒有指出這些組件必須要這樣寫,只是粗略的說了一些,大概可能也許還是我太菜鳥了,這么簡單的問題還花了不少時間:
(官網:https://www.iviewui.com/docs/guide/start#TBTX)
在非 template/render 模式下(例如使用 CDN 引用時),組件名要分隔,例如 DatePicker
必須要寫成 date-picker
。
以下組件,在非 template/render 模式下,需要加前綴 i-
:
- Button:
i-button
- Col:
i-col
- Table:
i-table
- Input:
i-input
- Form:
i-form
- Menu:
i-menu
- Select:
i-select
- Option:
i-option
- Progress:
i-progress
- Time:
i-time
以下組件,在所有模式下,必須加前綴 i-
,除非使用 iview-loader:
- Switch:
i-switch
- Circle:
i-circle
附完整示例代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>iview example</title> <link href="~/lib/iview3.1.4/styles/iview.css" rel="stylesheet" /> <script src="~/lib/vue2.5.17/vue.min.js"></script> <script src="~/lib/iview3.1.4/iview.min.js"></script> </head> <body> <div id="app"> <template> <i-menu mode="horizontal" :theme="theme1" active-name="1"> <Menu-Item name="1"> <Icon type="ios-paper" ></Icon> 內容管理 </Menu-Item> <Menu-Item name="2"> <Icon type="ios-people" ></Icon> 用戶管理 </Menu-Item> <Submenu name="3"> <template slot="title"> <Icon type="ios-stats" ></Icon> 統計分析 </template> <MenuGroup title="使用"> <Menu-Item name="3-1">新增和啟動</Menu-Item> <Menu-Item name="3-2">活躍分析</Menu-Item> <Menu-Item name="3-3">時段分析</Menu-Item> </MenuGroup> <MenuGroup title="留存"> <Menu-Item name="3-4">用戶留存</Menu-Item> <Menu-Item name="3-5">流失用戶</Menu-Item> </MenuGroup> </Submenu> <Menu-Item name="4"> <Icon type="ios-construct" ></Icon> 綜合設置 </Menu-Item> </i-menu> <br> <p>Change theme</p> <Radio-Group v-model="theme1"> <Radio label="light"></Radio> <Radio label="dark"></Radio> <Radio label="primary"></Radio> </Radio-Group> </template> </div> <script type="text/javascript"> var vue = new Vue({ el: '#app', data: { theme1: 'primary' } }); </script> </body> </html>