首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在关闭控制器时将值传递给父控制器

在关闭控制器时将值传递给父控制器的方法有很多种,这里我们将介绍一种常用的方法,即使用事件广播机制。

首先,我们需要在父控制器中注册一个事件监听器,用于接收子控制器传递的值。在父控制器中添加以下代码:

代码语言:javascript
复制
$scope.$on('valueChanged', function(event, data) {
  $scope.parentValue = data;
});

接下来,在子控制器中,当需要关闭控制器并将值传递给父控制器时,可以使用以下代码:

代码语言:javascript
复制
$scope.$emit('valueChanged', $scope.childValue);

这样,当子控制器触发valueChanged事件时,父控制器会接收到该事件,并将子控制器传递的值存储在$scope.parentValue中。

需要注意的是,事件广播机制是一种典型的观察者模式,需要谨慎使用,以避免出现循环依赖等问题。同时,在大型应用程序中,事件广播机制可能会导致性能问题,因此需要合理使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

编码篇-OC跨多层UI事件传递处理

前言 iOS 中,对象间的交互模式大概有这几种:直接 property 、delegate、KVO、block、protocol、多态、Target-Action 等等,本文介绍的是一种基于 UIResponder...项目开发中相信很多朋友都遇到过多层级view,事件抛出至VC处理的问题。 一般的处理方法都是使用 代理、回调、属性,可是多层级的View会让整个流程非常痛苦和难于维护。..., 相当于重写类方法的时候, 那么系统就会走子类的方法, 那么参数就直接传递给控制器了 *控制器中重写类方法* - (void)routerWithEventName:(NSString *)eventName...nextResponder, 也就是cell, cell没有重写类方法, 继续事件传递给tableView, tableView也没有重写类方法, 于是事件处理传递给控制器的view,控制器的view...也没有重写类方法, 于是事件处理传递给控制器, 控制器重写了类方法, 于是就走控制器重写的方法, 进行事件处理, 事件就成功地从button传到了控制器.

2.2K30

程序设计原则之SOLID原则

,也可能了个数组,了逗号 如果id的不符合期望,那整个代码将会出现问题,整个程序命脉控制了前端参上,错了就炸 如果后期改成了其他参数,获取需要增加其他参数,则只能在这个方法里面一直加,控制器方法承受的压力越来越大...对修改关闭 对修改关闭可以认为是依赖于对修改开放的 当一个能够正常运行的业务需要变更或者增加需求,要做的应该是尽量遵循原有的需求架构,然后额外增加新的逻辑,尽量不动到原来的逻辑 如果真需要动到原有逻辑的情况下...里氏替换原则(Liskov Substitution Principle) 里氏替换原则指的是: 继承必须确保类所拥有的性质子类中仍然成立,子类可以有额外的新性质,但不能变更类的性质....这样才能确保子类替换,不会出现程序错误....换句话来说,当一个方法依赖的是一个,所有继承的子类应该都可以替换这个类(能够类的子类),保证类的所有性质都还存在,能够正常运行,例如: 有一个响应的基类: package response.user

48850
  • 事件传递、响应者链条

    一、事件 iOS里有三种事件:触摸(touch)、加速(motion)、远程控制 UIResponder里,有以下事件处理 // 触摸事件 - (void)touchesBegan:(NSSet...HitTest的顺序 UIApplication -> UIWindow -> Root View -> subview -> ··· -> initalView 系统检测到手指触摸(Touch)操作,...Touch 以UIEvent的方式加入UIApplication事件队列中。...(即调用super的touches方法),从之前往下走的路线往上回,在其中加入了Viewtroller来处理 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的View...视图层次结构的最顶级视图,传递给ViewController ViewController事件传递给window对象进行处理 window对象继续事件或消息传递给UIApplication

    88310

    达观数据对AngularJS技术的思考与实践

    Directive的几个属性: Restrict:E(元素),A(属性),C(类),M(注释) 默认是A Scope:默认false,表示继承作用域,true表示继承作用域并创建自己的作用域,{...特别是测试的时候不好办,因为对某个部分进行孤立的测试常常需要模拟它的依赖。第三种方式是最好的,因为它不必组件中去主动需找和获取依赖,而是由外界依赖传入。...1)作用域的原型继承:原型继承对变量的赋值不会修改原型中的,而是直接在当前scope中创建一个同名的属性;但如果是变量是对象,则不会创建。即基本类型会重新创建变量,引用则不会。 ?...H1始终显示world,H2中会显示键入。 ? H1,H2都显示键入。 2)控制器的继承:子控制器的作用域将会原型继承控制器的作用域。...因此当你需要重用来自控制器中的功能,你所要做的就是作用域中添加相应的方法。这样一来,自控制器将会通过它的作用域的原型来获取作用域中的所有方法。 ?

    5.4K150

    Spring 框架基础(06):Mvc架构模式简介,执行流程详解

    C:代表控制器Controller 控制器的作用就是根据入参,把不同的响应数据(Model),显示不同的视图(View)上。...,根据逻辑视图名解析成真正的视图 ; (9)、视图解析器向前端控制器返回View ; (10)、前端控制器进行视图渲染,视图渲染模型数据(ModelAndView对象中)填充到request域中;...用于类上,表示类中的所有响应请求的方法都是以类上标注地址作为路径。...@requestParam 主要用于SpringMvc框架的控制层获取参数,三个常用参数:defaultValue表示设置默认,required 通过boolean设置是否是必须要传入的参数,value...@RequestBody 接收请求体中传递给后端的Json字符串数据的,GET方式无请求体,所以使用@RequestBody接收数据,不能使用GET方式提交数据,需要用POST方式进行提交。

    1.2K10

    iOS面试题-UI篇

    能 因为UIScrollView的内容尺寸是根据其内部的内容来决定的,所以是可以viewDidLoad中设置的 补充:(这仅仅是一种特殊情况) 前提,控制器B是控制器A的一个子控制器,且控制器B的内容只控制器...因为任何控制器的viewviewDidLoad的时候的尺寸都是不准确的,如果有子控件的尺寸依赖控件的尺寸,在这个方法中设置会导致子控件的frame不准确,所以这时应该在下面的方法中设置子控件的尺寸...view,那么就传递给控制器 如果控制器不存在,则将其传递给它的控件 视图层次结构的最顶层视图也不能处理接收到的事件或消息,则将事件或消息传递给UIWindow对象进行处理 如果UIWindow对象也不处理...,则将事件或消息传递给UIApplication对象 如果UIApplication也不能处理该事件或消息,则将其丢弃 补充:如何判断上一个响应者 如果当前这个view是控制器的view,那么控制器就是上一个响应者...如果当前这个view不是控制器的view,那么控件就是上一个响应者 [1240] 面试题持续整理更新中,如果你正在面试或者想一起进阶,不妨添加一下交流群1012951431一起交流。

    2K21

    iOS - 事件处理全过程(补充)

    事件处理的完整过程 1> 先将事件对象由上往下传递(由控件传递给子控件),找到最合适的控件来处理这个事件。...;就会将事件顺着响应者链条往上传递,传递给上一个响应者 4> 接着就会调用上一个响应者的touches….方法 如何判断上一个响应者 1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者...2> 如果当前这个view不是控制器的view,那么控件就是上一个响应者 响应者链的事件传递过程 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的视图 视图层次结构的最顶级视图...,如果也不能处理收到的事件或消息,则其事件或消息传递给window对象进行处理 如果window对象也不处理,则其事件或消息传递给UIApplication对象 如果UIApplication也不能处理该事件或消息...多控件处理的原则是1响应者链条上,且是其控件的控件2且实现touches方法。

    53980

    京东七鲜一面总结

    假如我们在其他的地方修改了这个 NSMutableString 对象,那么 NSString 的会随之改变。...同名方法调用顺序 同名方法子类、类、分类的调用顺序?...nextResponder 指向视图如果是控制器根视图则指向控制器控制器如果在导航控制器中则指向导航控制器的相关显示视图最后指向导航控制器; 如果是根控制器则指向 UIWindow; UIWindow...主线程中如果产生事件那么 runloop 才回去创建 autoreleasepool,通过这个道理我们就知道为什么子线程中不会创建自动释放池了,因为子线程的 runloop 默认是关闭的,所以他不会自动创建...8.计算机编译流程 源文件: 载入.h、.m、.cpp 等文件 预处理: 替换宏,删除注释,展开头文件,产生 .i 文件 编译: .i 文件转换为汇编语言,产生 .s 文件 汇编: 汇编文件转换为机器码文件

    39920

    iOS-控件响应用户控制事件之事件处理

    UIView *)view; 返回表示触摸view上的位置 这里返回的位置是针对view的坐标系的(以view的左上角为原点(0, 0)) 调用时传入的view参数为nil的话,返回的是触摸点在UIWindow...return fitView; } } // 表示没有比自己更合适的view return self; } 事件传递的完整过程 1> 先将事件对象由上往下传递(由控件传递给子控件...;就会将事件顺着响应者链条往上传递,传递给上一个响应者 4> 接着就会调用上一个响应者的touches….方法 如何判断上一个响应者 1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者...2> 如果当前这个view不是控制器的view,那么控件就是上一个响应者 响应者链的事件传递过程 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的视图 视图层次结构的最顶级视图...,如果也不能处理收到的事件或消息,则其事件或消息传递给window对象进行处理 如果window对象也不处理,则其事件或消息传递给UIApplication对象 如果UIApplication也不能处理该事件或消息

    97270

    开发者成长激励计划-基于TencentOS Tiny 家具的集群控制系统方案

    ,但可以通过向子节点发送INIT指令,使得协议收集获得收集数据。...此中继器只有一个需要监听的任务,即节点的输入,当节点传入INIT指令,表明节点不知道当前中继器的情况,我们则将相应的状态信息进行回即可。...另一种情况对于用户的控制指令,中继器则携带控制信息,以相同的格式回。也就是,无论指令到底如何,回的目的是告诉核心控制器,它将来会是什么状态,对于节点的非INIT指令,控制器只需要执行即可。...传递型中继器有子节点,对于此类中继器,只有当收到所有子节点的回数据,它才会向节点回数据。...为了表示数据传递,此中继器有两种状态,监听态表示中继器没有回数据的打算,当它收到节点的INIT指令,或子节点的回数据,进入等待状态;等待态表示中继准备向节点回数据,此时它将维护一个子节点状态表

    87100

    iOS面试题:事件传递和响应机制

    (也就是touch方法默认不处理事件,只传递事件),事件交给上一个响应者进行处理 4.2 响应者链条 iOS程序中无论是最后面的UIWindow还是最前面的某个按钮,它们的摆放是有前后关系的,一个控件可以放到另一个控件上面或下面...,那么用户点击某个控件是触发上面的控件还是下面的控件呢,这种先后关系构成一个链条就叫响应者链。...如何判断上一个响应者 1 如果当前这个view是控制器的view,那么控制器就是上一个响应者 2 如果当前这个view不是控制器的view,那么控件就是上一个响应者 响应者链的事件传递过程 1 如果当前...view是控制器的view,那么控制器就是上一个响应者,事件就传递给控制器;如果当前view不是控制器的view,那么视图就是当前view的上一个响应者,事件就传递给它的视图 2 视图层次结构的最顶级视图...,如果也不能处理收到的事件或消息,则其事件或消息传递给window对象进行处理 3 如果window对象也不处理,则其事件或消息传递给UIApplication对象 4 如果UIApplication

    1.2K10

    史上最详细的iOS之事件的传递和响应机制-原理篇

    如果是处理UIViewController的触摸事件,那么控制器的.m文件中直接重写那四个方法即可!...nonatomic,readonly) UITouchPhase phase; 2.1.1.3.UITouch的方法 (CGPoint)locationInView:(UIView *)view; // 返回表示触摸...(也就是touch方法默认不处理事件,只传递事件),事件交给上一个响应者进行处理 4.2.响应者链条示意图 响应者链条:iOS程序中无论是最后面的UIWindow还是最前面的某个按钮,它们的摆放是有前后关系的...如果当前view是控制器的view,那么控制器就是上一个响应者,事件就传递给控制器;如果当前view不是控制器的view,那么视图就是当前view的上一个响应者,事件就传递给它的视图 2>视图层次结构的最顶级视图...,如果也不能处理收到的事件或消息,则其事件或消息传递给window对象进行处理 3>如果window对象也不处理,则其事件或消息传递给UIApplication对象 4>如果UIApplication

    11.1K70

    iOS架构入门 - MVC模式实例演示

    Controller 中就能拿到资源,不需要 ---- 缺点!!...(很关键的一步) 模块化划分,每个模块对应自己的一个View,例如Demo2模块,View层里面有个Demo2View,界面元素写到View中 ---- 知识1:如何(参数) //View + (...中就能拿到资源,不需要 ---- 缺点!!...(很关键的一步) 模块化划分,每个模块对应自己的一个Model,例如Demo2模块,View层里面有个Demo2Model,网络请求&&数据处理写到Model中 ---- 知识1:如何(参数) @...,子类里面写就行了,不会影响到类代码,类一般也是放公共,常用的方法(或属性),如果是特殊的,直接在子类里面新增即可,无需添加到类~ >控制器也可以使用继承,可以减少不少冗余代码 //基类控制器

    1.3K00

    iOS中的事件的产生和传递

    注 意:如果hitTest:withEvent:方法中返回nil,那么调用该方法的控件本身和其子控件都不是最合适的view,也就是自己身上没有找到更合适的view。...image.png 1.如果当前view是控制器的view,那么控制器就是上一个响应者,事件就传递给控制器;如果当前view不是控制器的view,那么视图就是当前view的上一个响应者,事件就传递给它的视图...2.视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其事件或消息传递给window对象进行处理 3.如果window对象也不处理,则其事件或消息传递给UIApplication对象...;如果上级视图仍然无法处理则会继续往上传递;一直传递到视图控制器view controller,首先判断视图控制器的根视图view是否能处理此事件;如果不能则接着判断该视图控制器能否处理此事件,如果还是不能则继续向上传...),事件的响应是从下到上(顺着响应者链条向上传递:子控件到控件。

    91010

    AngularJs指令解密

    * 级作用域绑定:通过&符号可以对级作用域进行绑定,以便在其中运行函数 transclude(布尔Boolean) 可选,默认为false 可以整个模板,包括其中的指令通过嵌入全部传入一个指令中...这样做可以任意内容和作用域传递给指令。...require会将控制器注入到其所指定的指令中,并作为当前指令的链接函数的第四个参数。 默认情况下,指令只会在自身的元素上查找控制器。可以用下面的前缀进行修饰,改变查找控制器的行为: ?...^: 前面两个选项的行为组合起来,可选择地加载需要的指令并在指令链中进行查找 没有前缀: ,指令将会在自身所提供的控制器中进行查找,如果没有找到任何控制器(或具有指定名字的指令)就抛出一个错误 compile...\$setViewValue()方法会更新控制器本地的\$viewValue,然后递给每一个\$parser函数 被解析且\$parser所有函数都完成后,会赋给\$modeValue属性,并且传递给指令中

    2.2K70

    Asp.Net MVC4入门指南(5):从控制器访问数据模型

    设定以下选项: · 控制器名称: MoviesController.(这是默认)。...private MovieDBContext db = new MovieDBContext(); 向Movies控制器请求,从而返回Movies电影数据库表中的所有记录,然后结果传递给Index视图...强类型模型和 @model 关键字 本系列之前的教程中,您看到了使用ViewBag对象,从控制器传递数据或对象给视图模板。ViewBag是一个动态的对象,提供了方便的后期绑定方法信息传递给视图。...当您创建电影控制器,Visual Studio 会将@model声明自动包含到Details.cshtml文件的顶部: @model MvcMovie.Models.Movie 此@model声明使得控制器可以强类型的...当您完成操作后,通过右键单击MovieDBContext ,选择关闭连接关闭该数据库连接。(如果您没有关闭连接,当您下次运行该项目,可能会出现错误)。 ?

    4.2K50

    SpringBoot常用注解集合「建议收藏」

    @ResponseBody SpringMVC中因为控制器返回的是一个字符串,但这个字符串因为控制器SpringMVC底层实现方式的原因,会被默认为返回是一个静态页面的名字然后以进行web页面的跳转...@RequestBody @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体参的无疑是POST请求了,所以使用@RequestBody...因为前后端分离开发,后端的控制器不再需要返回作用为进行页面跳转的字符串,所以我们一般这个注解加在整个控制器类的上面以表示下面所有的控制器方法通通都只返回普通字符串。...(这是前后端不分离情况下的,如果是分离的都是restful风格的了,不会有这种请求参数) 意思是我们浏览器端输入url访问这个控制器必须携带一个叫id的请求参数,默认必须要带否则报错,不过required...带斜杠的参数我们就可以用这个注解来解析两个斜杠中的占位符所代表的参数值,比如我们的id是1234,则占位符中{id}代表的就是1234,我们就可以用@PathVariable解析出来。

    49210

    Cocoa编程中视图控制器与视图类详解

    从语法上 说,UIViewController是视图控制器类。视图控制器类是没有可视化表示的抽象类,只有它管理的视图才提供可视画布。记住:1....通过调用initWithRootViewController:方法可以特定控制器设置为根。...控制器加载视图过程 当调用视图控制器的view属性,视图控制器会先调用loadView方法加载视图,因此,可以loadView方法中创建所有的视图,这是比较好的编程惯例。...控制器视图消失过程    消失过程比较简单,不作说明。 7. 事件处理 如图所示,一般情况下,当一个视图不响应用户事件,它会将事件传递给它的视图。...但是,当视图被视图控制器管理,它会将事件首先传递给视图控制器。如果视图控制器也不处理该事件,则视图控制器会将数据传递给视图控制器视图的超类,一般是UIWindow.

    5.1K50

    实际操作-手把手探究tableViewCell上的控件点击事件进阶篇:实际项目操作

    打开imageView的用户交互事件 ---- 拓展:UIView,UIButton默认是可以进行用户交互,如果控件不能(or 手动关闭用户交互),子控件即使是UIButton,也无法触发交互事件(例如点击事件...---- -->解决办法:-->通过控制器实现页面跳转!...回的方法:a.通知(没跨界面的话用通知有点鱼,比较low)                      b.代理/Block,这里差不多,我使用的是代理,可以仅适用一个代理方法,按钮的tag传过去判断...控制器界面--通过代理,实现控制器的跳转 进阶篇:实际项目操作 需求如下:1.有网络数据请求;2.cell的数据是从控制器传过去的(可以通过字典转模型);3.使用AFN请求数据(异步请求) ---- 问题...逻辑严谨性:此时加个网络请求数据是否成功的判断,成功展示可以点击的按钮) -->怎么让控制器知道我们点击了哪行的cell --> 没有触发cell的didSelectRowAtIndexPath方法

    3.7K50
    领券