D56-项目一(03)前端MVC思想和实现,控制器继承,规格管理部分实现

一、前端分层开发

  • 原因:html代码和js代码放在一起,不利于后期的维护。
  • 进行代码分离,提高可维护性
    在这里插入图片描述
  • 前端分层开发:
    1. controller:控制器:封装和处理数据
    2. service:服务层:与后端进行请求交互。
    好处:代码逻辑职责更明确,代码复用性更强

1.1 前端代码分离

  • 创建如下包结构
    在这里插入图片描述

前端基础层

  • 即定义模块
//定义模块  参数一:模块名称
// 参数二:依赖的其他模块 注意:如果没有依赖其他模块,也需要制定空数组
var app = angular.module("pinyougou", []);

//上面截图中,第二个依赖的分页插件,其他一样。

前端服务层

//自定义服务层
app.service("brandService", function ($http) {
    //查询所有品牌列表地
    this.findAll = function () {
        return $http.get("../brand/findAll.do");
    }
    //分页查询
    this.findPage = function (pageNum, pageSize) {
        return $http.get("../brand/findPage.do?pageNum=" + pageNum + "&pageSize=" + pageSize);
    }
........
}    

前端控制层

定义父控制器(控制器继承)
  • 控制器继承
    • 伪继承:实现思路是共享$scope变量
  • 目的:存放一些经常使用的代码,如分页配置,复选框勾选等
app.controller("baseController",function ($scope) {
	....

}
  • brandController.js
//定义控制器 基于模块定义控制器
//参数一:控制器名称 参数二:控制器要做的事情
//$scope 理解为全局的作用域对象  作用:用于js与html的数据交换桥梁
app.controller("brandController",function ($scope,$controller, brandService) {

    //定义控制器继承  参数一:继承的父控制器名称 参数二:共享$scope变量资源
    $controller("baseController",({$scope : $scope}));

    //定义对象数组
    //json格式数组:[] json格式对象:{}
    $scope.findAll = function () {
        //success 请求成功后的回调函数
        brandService.findAll().success(function (response) {
            $scope.list = response;
        })
    }
    //请求后端,完成分页查询
    $scope.findPage = function (pageNum, pageSize) {
        brandService.findPage(pageNum, pageSize).success(function (response) {
            //赋值满足条件的总记录数
            $scope.paginationConf.totalItems = response.total;
            //当前页的结果
            $scope.list = response.rows;
        })
    }

修改页面

既然前端使用了MVC思想,则页面需要引入对应的资源。

<script type="text/javascript" src="../js/base_pagination.js"></script>
    <script type="text/javascript" src="../js/service/brandService.js"></script>
    <script type="text/javascript" src="../js/controller/baseController.js"></script>
    <script type="text/javascript" src="../js/controller/brandController.js"></script>

如果不引用会报“xxx为定义”错误!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值