這篇文章將為大家詳細講解有關(guān)Element中如何使用Cascader動態(tài)加載省\市\(zhòng)區(qū)數(shù)據(jù),小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
佳縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!element中的cascader其實是有動態(tài)加載次級選項的方法。
方法的原理是利用址(引用)傳遞,動態(tài)修改:options
。
var c={name: 'bob'} var d=c d.name = 'tom' console.log(c) // {name: "tom"}
http://element-cn.eleme.io/#/zh-CN/component/cascader#dong-tai-jia-zai-ci-ji-xuan-xiang
其中找到究竟需要在那層添加數(shù)據(jù)就變成一個很麻煩的問題。
怎么找了?
當然只能遞歸了。
簡化一下大致思路:
var a = [ { value: '2', children: [ { value: '2-1', children: [ { value: '2-1-1', children: [], }, ], }, { value: '2-2', children: [ { value: '2-2-1', children: [], }, { value: '2-2-2', children: [ { value: '2-2-2-1', children: [], }, ], }, ], }, ], }, ] var b = ['2','2-2','2-2-1']
那么我們就需要通過b
找到a
所在的位置。
a[0].children[1].children[0] { value: '2-2-1', children: [], },
然后再賦值:
a[0].children[1].children[0].children = [{value: '2-2-1-1',children: []}] console.log(a)
編寫function:
findRegionOption(regionOptions, regionArr) { if (_.isEmpty(regionArr) || _.isEmpty(regionOptions)) { return null } let regionId = _.first(regionArr) let regionOption = _.find(regionOptions, regionOption => { return regionOption.value === regionId }) if (!regionOption) { return null } let tailRegionArr = _.tail(regionArr) // lodash的tail方法,獲取除了array數(shù)組第一個元素以外的全部元素。 if (_.isEmpty(tailRegionArr)) { return regionOption } return this.findRegionOption(regionOption.children, tailRegionArr) }
動態(tài)加載數(shù)據(jù):
loadRegionChild(regionIdArr) { let regionOptions = this.regionHiera let regionOptionInUI = this.findRegionOption(regionOptions, regionIdArr) if ( !regionOptionInUI || !regionOptionInUI.children || regionOptionInUI.children.length > 0 ) { return null } let regionKey = _.last(regionIdArr) if (!regionKey) { return null } api .getRegionHiera(regionKey) .then(res => { let regionHiera = res.data regionOptionInUI.children = regionChildrenTransfomed // 動態(tài)加載賦值 }) }
整個頁面代碼大致就是:
整體思路還是找到點擊后的region,然后動態(tài)賦值給children。
關(guān)于“Element中如何使用Cascader動態(tài)加載省\市\(zhòng)區(qū)數(shù)據(jù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。