如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 2.通过作用域中的事件处理通信.但是这种方法有一些限制:例如,你并不能广泛的将事件传播到所有监控的作用域中.你必须选择是否与父级作用域或者子作用域通信.$on.$emit和$broadcast使得event.data在controller之间的传递变的简单.$emit:子传父 传递event与data$broadcast:父传子 child controller传递event与data$on:监听或接收数据…
AngularJS中的作用域有一个非常有层次和嵌套分明的结构.其中它们都有一个主要的$rootScope(也就说对应的Angular应用或者ng-app),然后其他所有的作用域部分都是继承自这个$rootScope的,或者说都是嵌套在主作用域下面的.很多时候,你会发现这些作用域不会共享变量或者说都不会从另一个原型继承什么. 那么在这种情况下,如何在作用域之间通信呢?其中一个选择就是在应用程序作用域之中创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 在AngularJS中还有另外一个选…
公司项目开发用的是angularjs,关于事件通讯一直用的是EventBus,直到上周写一个小组件懒得引用EventBus时,想到用angularjs自带的事件通信时,结果很尴尬的忘记原生方法单词怎么写了.... 可能现在记录这个真的算很晚了,包括对于显得有些老旧的angularjs,但我们学习的毕竟是思想,而非框架,所以还是独立一篇文章来聊聊angularjs中的事件通信$on,$emit与$broadcast. 一.为什么要用事件通信? 为什么要用事件通信?肯定要用啊,不用又解决不了问题,只…
下面以一个例子来讲述 angular 中的event system,有$emit(), $on(), $broadcast().效果图如下 下面的代码中,用到了 controller AS 的语法,具体这种语法的使用情况,好处或是与 原来 直接在 Controller中把视图对象直接绑定到 $scope 对象上面的区别, 可以查看我之前的一片博文. 直接贴代码 <!DOCTYPE html> <html> <head> <link rel="styles…
$on.$emit和$broadcast使得event.data在controller之间的传递变的简单. $emit只能向parent controller传递event与data $broadcast只能向child controller传递event与data $on用于接收event与data 例如: <div ng-controller="ParentCtrl"> <!--父级--> <div ng-controller="SelfCt…
如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 2.通过作用域中的事件处理通信.但是这种方法有一些限制:例如,你并不能广泛的将事件传播到所有监控的作用域中.你必须选择是否与父级作用域或者子作用域通信. $on.$emit和$broadcast使得event.data在controller之间的传递变的简单.$emit:子传父 传递event与data$broadcast:父传子 child controller传递event与data$on:监听或接收数…
Angular按照发布/订阅模式设计了其事件系统,使用时需要“发布”事件,并在适当的位置“订阅”或“退订”事件,就像邮箱里面大量的订阅邮件一样,当我们不需要时就可以将其退订了.具体到开发中,对应着$scope和$rootScope的$emit.$broadcast和$on方法.本文介绍Angular的事件机制,包括$scope和$rootScope处理事件上的异同,$broadcast.$emit和$on的使用方式及他们区别等内容. $scope与$scope之间的关系,$scope与$root…
$emit只能向parent controller传递event与data $broadcast只能向child controller传递event与data $on用于接收event与data 例子如下 html代码 <div ng-controller="ParentCtrl"> <!--父级--> <div ng-controller="SelfCtrl"> <!--自己--> <a ng-click=&q…
父子之间 <div ng-controller="ParentCtrl"> <div ng-controller="ChildCtrl"></div> </div>父亲这边: $scope.$emit("ss", { ss:true; }); 孩子这边: $scope.$on('ss', function (event, data) { $scope.ss= data.ss; }); 兄弟之间 &l…
开发中有时候会需要控制器之间的传值操作:下面几个操作可以达到所需, 注:无平级之间的操作 $emit只能向父 controller传递event与data$broadcast只能向子 controller传递event与data$on用于接收event与data…
1.$scope.$on view事件 //View被加载但是DOM树构建之前时: $scope.$on('$viewContentLoading', function(event, viewConfig){ ... }); //View被加载而且DOM树构建完成时: $scope.$on('$viewContentLoaded', function(event){ ... }); //路由路径发生改变时 current:要到达的路径  previous:上一个路径 $scope.$on('$l…
$emit只能向parent controller传递event与data( $emit(name, args) ) $broadcast只能向child controller传递event与data( $broadcast(name, args) ) $on用于接收event与data( $on(name, listener) ) <div ng-controller="ParentCtrl"> <!--父级--> <div ng-controller=…
参考:http://***/class/54f3ba65e564e50cfccbad4b 1. AJAX:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)可以与服务器交换数据并更新部分网页,而无需重新加载整个页面. 2. JQuery:浏览器里原生的JavaScript有点像汇编语言,不同的浏览器就像不同的CPU架构,汇编语言各有千秋,这让前端开发者很恼火.聪明人很快发现了这个痛点,于是,抹平浏览器差异的jQuery库出现了. 3. An…
Directive 指令 直接上实例 index.html <!doctype html> <html ng-app="drag"> <head> <script src="http://code.angularjs.org/angular-1.1.0.min.js"></script> <script src="script.js"></script> <…
什么是AngularJS? AngularJS是一个把HTML(视图)绑定到JavaScript对象(模型)上的框架.当模型改变时,页面也能自动随之更新,反之亦然.当某个域的内容发生变化时,与之关联的模型也能更新.正因为Angular处理了所有的中间代码,所以你不用像jQuery那样,手动更新HTML或者事件监听.事实上,这里没有任何一个例子使用到了jQuery! 几大特性(可以像android一样理解为四大组件的这种特性): 特性一:双向的数据绑定 个典型的web应用可能包含了80%的代码用来…
实例化一个angularJs模块 <body class="hold-transition skin-red sidebar-mini" ng-app="app" ng-controller="brandController" > <!-- .box-body --> <div class="box-header with-border"> <h3 class="box-ti…
参考博客:  https://blog.csdn.net/weixin_33178524/article/details/79179597 https://blog.csdn.net/qq_42128407/article/details/80189774 https://www.cnblogs.com/1996zy/p/7638101.html 1 前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢. AngularJS是g…
初识: {{}}   这种双层花括号的语法称之为:插值语法:也可以说是 标识符:AngularJS 主要就是使用这种方法进行数据绑定 ng-module="name"   在ng的模型上插入一个name字段 是什么: angular是仿模板引擎的语法      使用双向数据绑定(用户输入-->数据仓库.数据仓库-->用户界面:当用户输入发生改变时,都发生改变)的理念.      双向数据绑定:用户输入内容  的任何更改会立即反应到模型变量(一个方向),模型变量的任何更改都会…
Ionic基于AngularJS构建而成,所以学习一些AngularJS的知识很有必要.Ionic并没有独立开发一套完整的Web应用框架,而是对AngularJS进行了扩展,给它添加了大量界面组件和其他的移动端友好的特性. 版本angularjs1.6.X,ionic1.6.7 1.index.html 首先会进入index页面,里面引入了angularjs, cordova等js支持,此外还有app.js, controllers.js, services.js等文件.ng-app=" &qu…
AngularJS中的作用域scope有一个非常有层次和嵌套分明的结构. 其中它们都有一个主要的$rootScope(也就说对应的Angular应用或者ng-app),然后其他所有的作用域部分都是继承自这个$rootScope的,或者说都是嵌套在主作用域下面的.很多时候,你会发现这些作用域不会共享变量或者说都不会从另一个原型继承什么. 那么在这种情况下,如何在作用域之间通信呢?其中一个选择就是在应用程序作用域之中创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 在AngularJS中还…
如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 2.通过作用域中的事件处理通信.但是这种方法有一些限制:例如,你并不能广泛的将事件传播到所有监控的作用域中.你必须选择是否与父级作用域或者子作用域通信. $on.$emit和$broadcast使得event.data在controller之间的传递变的简单.$emit:子传父 传递event与data$broadcast:父传子 child controller传递event与data$on:监听或接收数…
如何在作用域之间通信呢?    1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信.    2.通过作用域中的事件处理通信.但是这种方法有一些限制:例如,你并不能广泛的将事件传播到所有监控的作用域中.你必须选择是否与父级作用域或者子作用域通信. $on.$emit和$broadcast使得event.data在controller之间的传递变的简单. $broadcast.$emit事件必须依靠其他事件(ng-click等)进行触发,而不能单纯写一个这个..$on倒是可以直接写,因为它…
$broadcast: $broadcast事件是由父组件发起,所有子组件都会收到此广播事件,除非事件被手动取消.事件广播的顺序为广度优先搜索顺序,如上图,如果页面Page_Index发起一个$broadcast事件,那么按先后顺序依次接收到该事件的组件为:ComA.ComB.ComC.ComD.ComE.ComF.ComG.ComH.如下图     理解官方意思就是:如果通过当前组件进行$broadcast广播事件,那么就只有它的子组件能接收事件,它的父组件和兄弟组件是无法接收到消息.调用方式…
$broadcast: $broadcast事件是由父组件发起,所有子组件都会收到此广播事件,除非事件被手动取消.事件广播的顺序为广度优先搜索顺序,如上图,如果页面Page_Index发起一个$broadcast事件,那么按先后顺序依次接收到该事件的组件为:ComA.ComB.ComC.ComD.ComE.ComF.ComG.ComH.如下图     理解官方意思就是:如果通过当前组件进行$broadcast广播事件,那么就只有它的子组件能接收事件,它的父组件和兄弟组件是无法接收到消息.调用方式…
AngularJS中,子作用域一般都会通过JavaScript原型继承机制继承其父作用域的属性和方法.但有一个例外:在directive中使用scope: { ... },这种方式创建的作用域是一个独立的"Isolate"作用域,它也有父作用域,但父作用域不在其原型链上,不会对父作用域进行原型继承.这种方式定义作用域通常用于构造可复用的directive组件. 作用域的原型继承是非常简单普遍的,甚至你不必关心它的运作.直到你在子作用域中向父作用域的原始类型属性使用双向数据绑定2-way…
最近一段时间一直在看AngularJS,趁着一点时间总结一下. 官网地址:http://angularjs.org/ 先推荐几个教程 1. AngularJS入门教程 比较基础,是官方Tutorial的翻译. 2. 七步从AngularJS菜鸟到专家 也比较基础,制作了一个在线音乐播放网站. 3. AngularJS开发指南 这个教程比较全面,但我感觉翻译的有些晦涩难懂. 看过这些教程后,觉得AngularJS也懂一点了,就想用它干点事,就分析一下AngularJS写的todomvc吧. Tod…
一.控制器 首先列出几种我们平常使用控制器时的几种误区: 我们知道angualrJs中一个控制器时可以对应不同的视图模板的,但这种实现方式存在的问题是: 如果视图1和视图2根本没有任何逻辑关系,这样"控制器"的角色就会很尴尬,因为我们不可能把不同业务的数据模型都绑在同一个控制器中. 这种实现方式也存在一个问题是:如果控制器1和控制器2里面有2个方法是一模一样的怎么办? <!doctype html> <html ng-app> <head> <…
我们在这里不讨论Angular2和Angular4,因为其完全重写,其实已经不叫AngularJS了. AngularJS的缺陷: 性能问题:通过检查脏值进行数据更新,当数据不断增加时,检查的效率就不断降低.页面加载速度也会变慢. 落后于当前web发展理念(如组件式的开发) 对手机端的支持不是太友好 1. 执行时机 angularJS定义是一个立即执行的匿名函数,那么其执行时机为引入angularJS的位置决定. (function(window) { ... })(window); 2. 源码…
$scope是$rootScope的子作用域控制对象,$rootScope的id为1,其他的为2,3,4... 不同的控制器之间,所对应的作用域控制对象$scope,之间是相互隔离的,如果要共享数据,可以借助$rootScope这个根作用域控制对象来实现. AngularJS 中在触发事件和发送广播时,都可以传递参数,可以通过这一特性,来实现数据的共享.与事件和广播相关的,共有三个方法,分别是: 1.$emit():触发事件,它可以向上传递数据,比如,子控制器向父控制器,还有控制器向 $root…
我们时常会在不同controller之间进行通信,接下来就介绍三种controller之间的通信方式 一.使用$on.$emit和$broadcast进行controller通信 虽然AngularJS是不推荐使用嵌套controller的使用,但是会有场景使用到父子controller传值的情况 $on.$emit和$broadcast使得event.data在controller之间的传递变的简单. $emit:子传父  传递event与data $broadcast:父传子 child c…