位置: 编程技术 - 正文

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

  • 长期待摊费用一般指什么
  • 为什么增值税不计入营业税金及附加
  • 汇算清缴补缴企业所得税怎么做账
  • 免税农产品发票怎么抵扣申报
  • 房屋出租收入会计分录
  • 印花税自查补缴要先申报吗
  • 公司内控制度由谁制定
  • 停车费收入增值税申报表怎么填
  • 季度利润表不包括什么
  • 销售商品收到银行汇票计入什么科目
  • 建筑劳务公司业务范围是什么
  • 酒店应不应该为员工提供澡堂
  • 公司报销费用发票怎么开
  • 房企所得税纳税义务发生时间
  • 长期股权投资成本法转权益法追溯调整
  • 补缴社保的工资表
  • 一般纳税人从按照简易计税方法依照3%
  • 短期理财的门槛
  • 国税几年都没有缴纳
  • 纳税管理的主要内容是什么
  • 个税申报汇总表怎么填写
  • 批发企业购进商品发生的进货费用可以选择下列
  • 什么情况下要交增值税
  • 个税申报初始密码一定要去所属税局看吗
  • 工程施工余额怎么处理
  • 收到应收票据应该确认收入吗
  • 成本少结转了怎么调账
  • 留存收益在哪里可以查到
  • reminder.exe - reminder是什么进程 有什么用
  • 反射调用set方法
  • 消费税有减免政策吗
  • dvdram是什么意思
  • 税款缴纳期初未缴税额
  • 查补以前年度所得税如何申报
  • 怎么修改?
  • php如何提高程序运行效率
  • pytorch f
  • pnp算法简介与代码解析
  • 奥伊米亚康冬季气温低原因
  • css滚动条自动滚动
  • 应交税费的进项税和销项税
  • 用现金报销差旅费及增值税怎么做账
  • 发票校验码的作用
  • dedecms采集怎么用
  • 内账会计成本是什么意思
  • 期末存货材料成本差异
  • 短期借款的实际利率与现金折扣的关系
  • 施工仪器的主要类别
  • 终止合同需要赔偿吗
  • 差旅费报销单是谁填写的
  • 应收账款多收了退回怎么做账
  • 企业付的快递费怎么做账
  • 本单位职工可以在本单位兼职吗
  • win8旗舰版升级win10
  • 收集整理的近义词
  • linux深入理解
  • vmware虚拟机关机快捷键
  • ac1st19.dll
  • linux查看组的信息
  • win10无线网络不见了只显示飞行模式
  • window 80端口被占用
  • linux常用命令行
  • Win10应用程序无法正常启动0xc000007b
  • Windows7电脑怎么调整屏幕亮度
  • Ubuntu 14.04 LTS中安装fcitx中文输入法的教程
  • node.js安装教程详细
  • 从《AndEngine游戏开发实践指南》开始,学习AndEngine引擎
  • unity怎么用
  • linux dig命令
  • shell自动化
  • 原生js实现ajax步骤
  • unity每秒执行一次
  • jquery设置禁用
  • android 标签页
  • 空调设备税率多少钱
  • 股权转让申报期限
  • 经信委和科技局的区别
  • 开票后怎么报税呢
  • 浙江省税务发票
  • 印花税怎么计提和结转
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设