anjularjs ng-include造成的作用域问题

使用angularjs开发,有时候页面太大,代码行数太多,这时候会造成代码难以维护,以及查找和阅读代码变得越来越困难。而html页面就可以用ng-include将代码代码进行分页,但是ng-include自带作用域,很可能造成网页无法造成运行的后果。

接下来,说一下我的处理方式: - 方法一:使用controller别名

在声明ng-controller时这样写:

<div ng-controller="indexController as index" >
...
</div>

然后在indexController中使用this来定义变量,而不是$scope,这样indexController的所有子作用域都能通过index.来使用变量了,而不需要担心用ng-include分离代码时作用域造成的困恼。

  • 方法二:在子作用域实现父作用域的方法(钩子方法)

这个方法可以运用于表单。

<form name="myForm">
...
</form>

在indexController的js代码中可以直接用$scope.myForm来操作表单,但是要初始化后才能使用。如果表单的html代码放在了ng-include包含的作用域中,那么就不能获取到表单了

解决办法:

在indexController的js代码写上空方法:

this.getMyForm = function(){
  return  null;
};

然后使用ng-include的页面也说明一个controller

<div ng-controller="subController" >
...
</div>

在subController的js代码中写道:

$scope.index.getMyForm = function(){
  return $scope.myForm;
};

当然,在indexController要获取myForm使用this.getMyForm()就可以了,使用之前要记得判空。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python攻城狮

Python进程VS线程1.进程和线程2.同步的概念3.互斥锁4.多线程-非共享数据5.同步应用6.生产者与消费者模式

队列: 1、进程之间的通信: q = multiprocessing.Queue() 2、进程池之间的通信: q = multiproc...

12530
来自专栏小勇DW3

Java多线程面试题整理 1) 什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比...

40620
来自专栏后端技术探索

PHP 使用协同程序实现合作多任务(二)

waitingForRead 及 waitingForWrite 属性是两个承载等待的socket 及等待它们的任务的数组。有趣的部分在于下面的方法,它将检查 ...

12510
来自专栏FreeBuf

独家首发 | CVE-2017-11816 GDI信息泄露漏洞分析

我的漏洞被别人先报了,所以就把这个漏洞的细节公布一下吧。写的不是很详细,有poc大家可以自己调一调。 这个漏洞主要是因为GDI32种在处理metafile ME...

25790
来自专栏北京马哥教育

初学python的30个操作难点汇总(新手必看篇)

初学Python的人总会遇到这样或者那样的问题,在我学习Python的这段时间我总结了自己的29个问题,具体如下: 1 在cmd下 盘与盘之间的切换 直接 D...

43970
来自专栏ImportSource

并发编程-加锁机制

本文翻译自《Java Concurrency ?In ?Practice》,定期放送 ,让你利用碎片时间悄悄的看了一本书! 我们的文章是系列的。所以先请允许...

32980
来自专栏逢魔安全实验室

基于python的自动化代码审计

新年马上到了,FormSec现在这里给大家拜年,祝大家狗年旺财! 当然新年礼物已经给大家备好了:《基于python的自动化代码审计》 本文通过介绍在...

44960
来自专栏nnngu

02 Java类的加载机制

1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Cla...

30570
来自专栏好好学java的技术栈

java基础提升篇:深入浅出Java多线程

13720
来自专栏Jimoer

JVM学习记录-线程安全与锁优化(一)

线程:程序流执行的最小单元。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I...

8120

扫码关注云+社区

领取腾讯云代金券