位置: 编程技术 - 正文

AngularJS中controller控制器继承的使用方法

编辑:rootadmin

推荐整理分享AngularJS中controller控制器继承的使用方法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

前沿

最近在angularjs项目当中,看到 controller 好多都是重复性的代码,在 controller 当中有好多代码很相似 function(比如 controller 下的 CRUD 方法),重复性工作太多。后来想,可不可以提出一个service ,但仔细想想,这些CRUD 本来就是从 Service 中调用的,如果在提出Service,会造成 Service 比较混乱,职责不清晰 。 因为自己做过一些后端,借助后端的思想,是不是可以 controller 继承。

controllerservice实现继承经过一番查阅资料,发现AngularJS已经帮我们提供了controller继承。我们只需借助 controllerservice 。$controller service api

嵌套控制器中属性是如何被继承的?

==属性值是字符串

以上,ParentCtrl中的name字段被ChildCtrl分享,但改变ChildCtrl中的name字段值却不会影响ParentCtrl中的name值,当改变ChildCtrl中的name值,ParentCtrl和ChildCtrl的嵌套关系被打破,再次改变ParentCtrl中的name字段值也不会影响ChildCtrl中的name值。

以上,给ParentCtrl中的变量赋值是字符串类型,如果给ParentCtrl中的字段赋值对象类型呢?

==属性值是对象

以上,ParentCtrl中vm对象的被ChildCtrl分享,当然也分享了对象中的name字段,当改变ChildCtrl中的vm.name值会影响到ParentCtrl,也就是不会把ParentCtrl和ChildCtrl之间的嵌套关系打破。

AngularJS中controller控制器继承的使用方法

嵌套控制器中方法是如何被继承的?

使用ArrayCtrl中的add方法,添加没问题;而且ArrayCtrl中的add方法也可以被CollctionCtrl使用;

而且在子控制器中可以重写父控制器中的方法。

代码案例

1.创建一个 base.controller.js 文件

代码很简单,我们在 BaseController中提供了一个简单的 formValid() 方法,还初始化调用了一个getList() 方法。

2.创建一个Service 。这个 service 来提供数据服务

3.创建child.controller.js 文件 也就是我们最主要的一个文件

这样,我们通过 $controller service 实现了 controller 的继承 ,也可以把 child controller 需要的注入的服务 传入到 base controller 当中 。({ $scope, $scope,CRUDServices:ExtendServices }),我们child controlller 一行代码都没有写,就已经用了 获取 列表的 magic power 。如果我们需要调用表单验证,直接调用 vm.bFormValid() 就可以。

4.创建child.html 文件 ,我们直接 绑定就ok

结束语

这样下来以后我们可以提出一个 公共的 controller ,封装一些常用的方法,在 controller当中,只需要去写关于业务不同的 方法。 代码可维护性大大提高,代码量也会减下来。

标签: AngularJS中controller控制器继承的使用方法

本文链接地址:https://www.jiuchutong.com/biancheng/375857.html 转载请保留说明!

上一篇:vue解决跨域路由冲突问题思路解析(vue如何处理跨域)

下一篇:angular中ui calendar的一些使用心得(推荐)

  • 工程材料发票备注要求
  • 小规模纳税人季报还是月报?
  • 收到房租费发票如何做账
  • 怎么设置存货科目
  • 收到费用发票入账后发现错误
  • 什么叫外埠存款
  • 月末收到一批b材料,结算凭证未到,估价50000
  • 个体生产经营所得税税率2023
  • 专用发票和普通发票费率
  • 如何网上认证发票流程
  • 房租怎么开票
  • 新建厂房装修费账务处理
  • 股权增资稀释股价会涨吗
  • 如何检验发票真伪
  • 商场金银饰品销售该如何建账?
  • 法定盈余公积金转增资本不超过25%
  • 新注册的公司用不用开公户
  • 房屋出租何时缴纳房产税?
  • 贴息收据税前扣除是什么
  • office已经激活
  • ipados15 支持机型
  • 华硕笔记本电脑售后维修服务网点
  • 社保公积金代缴
  • 新会计制度下如何做账
  • 进项税转出包括哪些
  • 以前年度应收账款无法收回
  • 工厂没有生产许可证可以生产吗
  • quicktimeplayer.exe - quicktimeplayer是什么进程 有什么用
  • 银行拒付汇票金额的救济方法
  • 外地预交增值税退税了如何把申报报表
  • 无形资产的摊销方法
  • 当月认证了发票但没有进行增值税申报
  • 免税项目可以弥补税款吗
  • 财务运作规律
  • 供应商发票多开了怎么处理?
  • 企业应交税费的会计分录
  • php读取文件内容
  • 库存股属于什么
  • 利息收入属于什么税目
  • php输出表格css
  • websocket tcpsocket
  • php jsonp
  • 所有者权益是什么类科目
  • 利息发票可以抵扣吗
  • 什么是零申报制度
  • 企税申报表怎么填
  • 网上申报完还需要去税务局吗
  • python如何点击网页按钮
  • 专项应付款的账务处理
  • python unittest和pytest
  • 医疗器械和医疗耗材是一回事吗
  • 运输费抵扣进项税怎么算
  • sqlserver数据库定时任务
  • 会计人要求
  • 公司之前借款没入账现在还款
  • 债务重组的方式不包括债务转为资本
  • 转让专利权的使用权
  • 互联网金融理财产品的优势
  • 永续债利息可以抵税吗
  • 如何在卸载程序中隐藏已安装程序
  • win7开机报错0xc0000098
  • xp系统内存不足怎么办
  • 系统磁盘碎片整理
  • 360杀毒恢复区
  • linux系统中
  • 王者自动更新怎么关
  • hpm是什么格式的文件
  • mac修改java版本
  • 我们如何成为专业人员
  • win7安装kb3170455失败
  • call to OpenGL ES API with no current context (logged once per thread)
  • python中while用法
  • Emeditor与dos(cmd)经典使用技巧之批量生成网页
  • 使用node
  • android使用so
  • bootstrap和css的关系
  • 解读高考作文
  • 佛山顺德人才房申请条件
  • 下载国税网上申报
  • 本期应纳的增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设