素材牛VIP会员
前端页面复用求解
 麦***气  分类:JavaScript  人气:1264  回帖:1  发布于6年前 收藏

部门用的是angularjs,通过路由切换页面的模块化单页面应用

有这样一个页面,好多个地方都用到,目前我采用的方法如下(示意代码)
$stateProvider.state('xx' , 复用.html + 复用.ctrl);
$stateProvider.state('yy' , 复用.html + 复用.ctrl);
$stateProvider.state('zz' , 复用.html + 复用.ctrl);

这样,即使不同路由, 指定的页面、ctrl却是同一个

时间一久,弊病就出来了,

  1. 同一个模块被好几个地方判断,造成这个模块里有多个if判断(用以确认自己是在哪个模块下),长期以往,代码越来越多,改一个地方,还怕影响到其它模块
  2. 如果我不这样复用,但这些模块却只有些微区别,分开写将造成代码的冗余,更重要的是,如果以后要改一个大家都有的相似处,你得改多个地方,这样容易遗漏,管理上造成不便

不知道有没有说清楚,求解答

 标签:javascript

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv5 码农
野***7 CEO 6年前#1

产生这样的情况,个人感觉还是代码的模块化,或者说组件化做的不够好。当然这本身跟angularjs也有一定关系,在1.5版本之前,angularjs更是没有component的概念。

个人给出一点小小的建议。
angularjs再做这种页面复用的时候,尽量将部分页面include进去,或者说做成directive,或者component(1.5之后有),这部分代码要保证的一点就是js逻辑和页面都相同。而不是直接去把一个页面去做复用,通过controller里面的代码再做区分。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取