账户系统前端小规范

为了后来的开发维护方便,在此写下账户系统前端部分的概述,包括所用框架,依赖,管理工具,命名规范,项目结构等,后面有时间也会总结下前端开发的规范。

所用框架

系统所用框架为angular1.3版本,为2016年之前主流版本,前端这几年涌现了太多框架,自己熟悉了这个版本后也要跟上时代的步伐,学习angular2等

依赖

angular参照Java搞出了依赖注入和指令,系统的依赖注入和个部分功能解释如下

ui-router

angular1.x 本身有ng-router,但是满足不了复杂的应用,系统采用的
依赖为ui-router,ui-router具体用法配置和其自带的指令会单独讲一下。

管理工具

包管理工具用了gulp,主要执行如下功能

css压缩

js压缩

注意,为了避免压缩时注入的部分被误识别为变量部分,从而导致替换,应写成数组格式的依赖注入,特别是系统采用的angular-ui的modal服务,在实例化时也要写成数组格式的注入,分别如下

1.控制器初始化

 var appModule=angular.module("app",[])
     appModule.controller("controllerName",
                 ["dev1","dev2",function(dev1,dev2){
   //controller body here
}])

2.举例modal模态框的

 var modalInstance =$modal.open({
//配置部分,只显示modal控制器配置,我懒
controller:modalController
})
//by the way 这里可以写modalInstance的promise
//初始化modal的控制器,采用数组格式的依赖注入
var modalController =["dev1","dev2",function(dev1,dev2){
}]

扯远了,那个modal的作用域独立,要resolve进来数据或方法

去注释去空格

图片压缩

命名规范

这里只针对本系统给出一定的规范

控制器js文件和模板html名字相同,参照ui-router的命名结构,并相应的将点替换为下短横,ui-sref指令的值命名如下
在如总模板页为app,其下的一级菜单为app.Level1NavName,一级菜单下的二级菜单为app.Level1NavName.level2NavName,可参考config.router.js文件的配置,三级相同命名。
相应的文件命名Level1NavName_level2NavName.js/html

其中Level1NavName和Level2NavName全系统唯一,注意路由配置的url属性,表现为URL层级

madal弹出框的templete命名为触发事件函数的名称,controller属性的名称命名为函数名加Ctrl,例如

 $scope.appRegisterEdit=function(row){
   var myrow=row.entity;
   console.log(myrow);
   var modalInstance = $modal.open({
   templateUrl: 'appRegisterEdit.html',
   controller: appRegisterEditCtrl,
   resolve: {
    items: function () {
      return myrow;
    },
    shuaxing: function(){
      return $scope.shuaxing;
    },
    pop:function(){
      return $scope.pop;
    }
   }
 });
    modalInstance.result.then(function () {
}, function () {
  $scope.shuaxing();
});
}

项目结构