位置: 编程技术 - 正文

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的一些使用心得(推荐)

  • 公司租的住宅和商品房
  • 印花税税源明细表怎么填
  • 改革性补贴是否属于规范的津贴补贴
  • 民办非企业不注销的法律后果
  • 费用发票跨月可以入帐吗
  • 土地使用税什么意思
  • 餐饮行业液化气使用标准
  • 退货应入会计什么科目
  • 增值税发票开具红字发票后上月税款怎么交?
  • 小规模纳税人代收水电费税率
  • 上月税没报,可以开发票吗
  • 建筑施工企业印花税计税依据
  • 含税价标志有无影响
  • 多交增值税如何退回
  • 分红转增股本什么意思
  • 小规模纳税人教育费附加和地方教育费附加减免
  • 实际出资和名义出资
  • 公司的资产负债表包括
  • 对方开的销项负数抵扣联怎么处理
  • 新版edge浏览器兼容性视图怎么设置
  • msiexec.exe是什么进程介绍
  • 出口退税怎么申报个税
  • 电脑记事本在哪里打开
  • 支付的测试流程
  • php的pdo
  • Win10 20H2 Beta 预览版 19042.782正式推送(附更新内容)
  • PHP:Memcached::getDelayed()的用法_Memcached类
  • 存货跌价准备的计提
  • 营业费用这个科目还在用吗
  • 外国人在中国工作有五险一金吗
  • 深度学习&故障诊断初学者 - 学习路线
  • 用php写个简单的编程
  • 部署文档
  • 普莱斯德
  • 委托研发技术合同登记
  • react 组件化
  • chattr i
  • 土地测绘费计入管理费用明细科目吗
  • 企业产值用什么符号表示
  • python循环语句的语法
  • mongodb主备
  • 银行结算方式有哪几种?其具体内容是什么
  • 特惠贷利息怎么算
  • 无法收回的房租押金出什么会计科目
  • 工程行业预交税款怎么算
  • 缴税零申报
  • 分组 sql
  • 宣告分配现金股利和股票股利的区别
  • 建筑行业未取得收入如何结转成本
  • 房地产影响投资和消费,事关民生和发展
  • 如何理解啥意思
  • 小规模纳税人不超过10万免增值税
  • 出纳可以做库管吗
  • 会计账簿的扉页只需填列账簿启用日期和经管人员一览表
  • 计提的意义
  • 营业外收入是收入类还是费用类
  • mysql binlog redo
  • windows2003r2安装教程
  • windowsxp的开始菜单
  • redhat 7.0
  • 老毛桃2013 U盘启动盘和重装系统图文教程
  • 电脑周边是什么
  • win8 恢复
  • win7系统鼠标右键菜单设置
  • 在linux系统中有一个重要的概念
  • js如何使用
  • nodejs代码规范
  • android模块开发
  • perl 运算
  • unity移动方法
  • ajax请求图片并显示
  • 支持向量机
  • Linux 下mysql通过存储过程实现批量生成记录
  • javascript ES6 新增了let命令使用介绍
  • node.js import
  • androiddialog圆角
  • Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)
  • 新疆税务局电子
  • 公务员副处级工资待遇
  • 电子税务局官网湖南省
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设