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

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

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

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

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

時間一久,弊病就出來了,

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

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

回答
編輯回答
孤巷

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

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

2018年7月3日 20:10