在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 前端頁面復(fù)用求解

前端頁面復(fù)用求解

部門用的是angularjs,通過路由切換頁面的模塊化單頁面應(yīng)用

有這樣一個(gè)頁面,好多個(gè)地方都用到,目前我采用的方法如下(示意代碼)
$stateProvider.state('xx' , 復(fù)用.html + 復(fù)用.ctrl);
$stateProvider.state('yy' , 復(fù)用.html + 復(fù)用.ctrl);
$stateProvider.state('zz' , 復(fù)用.html + 復(fù)用.ctrl);

這樣,即使不同路由, 指定的頁面、ctrl卻是同一個(gè)

時(shí)間一久,弊病就出來了,

  1. 同一個(gè)模塊被好幾個(gè)地方判斷,造成這個(gè)模塊里有多個(gè)if判斷(用以確認(rèn)自己是在哪個(gè)模塊下),長(zhǎng)期以往,代碼越來越多,改一個(gè)地方,還怕影響到其它模塊
  2. 如果我不這樣復(fù)用,但這些模塊卻只有些微區(qū)別,分開寫將造成代碼的冗余,更重要的是,如果以后要改一個(gè)大家都有的相似處,你得改多個(gè)地方,這樣容易遺漏,管理上造成不便

不知道有沒有說清楚,求解答

回答
編輯回答
孤巷

產(chǎn)生這樣的情況,個(gè)人感覺還是代碼的模塊化,或者說組件化做的不夠好。當(dāng)然這本身跟angularjs也有一定關(guān)系,在1.5版本之前,angularjs更是沒有component的概念。

個(gè)人給出一點(diǎn)小小的建議。
angularjs再做這種頁面復(fù)用的時(shí)候,盡量將部分頁面include進(jìn)去,或者說做成directive,或者component(1.5之后有),這部分代碼要保證的一點(diǎn)就是js邏輯和頁面都相同。而不是直接去把一個(gè)頁面去做復(fù)用,通過controller里面的代碼再做區(qū)分。

2018年7月3日 20:10