1、controller 只要在一个地方引用就可以了,路由的时候不用指定controller了,在HTML中指定就可以了,否则会初始化两次

2、angular 模块间的服务无层级关系,相互可见。本质是angularjs将所有模块中的所有服务混入了应用级别的单一命名空间里,顒,对应的每个名字只存在唯一的服务。我们利用这点可以在依赖某模块的同事去覆盖此模块提供的服务。
    父模块中的服务会覆盖子模块中同名的服务。
3、可以将自定义的东西新建一个模块,依赖ng 然后 在需要使用的地方依赖此模块就可以了
4、controller之间通信是通过事件冒泡$emit 及广播$boradcast 来传递
5、更改默认 取值
    myMod.config(function($interpolateProvider){
        $interpolateProvider.startSymbol(‘[[’);
        $interpolateProvider.endSymbol(‘]]’);
})
6、创建自定义provider后在使用时要加上Provider后缀
7、form 
    任意元素上(form元素好像不好使)通过ng-form="formname" 指定一个form
    在此元素内的input元素通过指定name属性就可以在绑定到form作用域上
    
    表单验证,最常使用 ng-minlength,mg-maxlength,ng-pattern="/^\d?$/"
    表单及单个验证元素上都有 $valid,$invalid,$pristine,$dirty
  select标签 pattern无效,只要选择了option就是验证通过的
        ng-show="userForm.lastName.$invalid"
8 、ui-router
9、angular 执行 表达式
    $scope.$eval 在某个作用域下执行,可以用来解析属性为对象 scope.$eval(attrs.myDateTime); //"{link:'#dpt'}"
    $parse 解析表达式
10、获取自定义指令的内容
    attrs.指令名称
11、ui-router 跳转带参数的url
.state('/search', { //搜索
url: '/search?query',
。。。
$state.go('/search',{query:$scope.searchfield});
12、变量过大,影响性能,比如图片数据
13、chrome中border-top-style solid,否则感觉有黑色边框
14、异步、动态 注册服务 $provide 配置阶段注入,通过$injector 在运行阶段取出或者直接注入
15、自定义指令模板里包含自定义指令? 动态编译指令 http://blog.csdn.net/yy374864125/article/details/39289019
    element.append($compile(html.join(' '))(scope));
16、通过使用this 进行二次表达式计算
17、angular.injector,$injector.invoke 执行注入,$controller 获取controller对象进行执行
  1. angular.bootstrap(document, ['app']);
  2. if (window.__karma__) { //单元测试
  3. angular.module('app').provider({
  4. $rootElement: function () { //在获取$location 之前必须要有$rootElement
  5. this.$get = function () {
  6. return angular.element('<div ng-app></div>');
  7. };
  8. }
  9. });
  10. window.my$injector = angular.injector(['app']); //必须在bootstrap之后才能获取injector
  11. }

  1. my$injector.invoke(function (_$controller_, _$rootScope_, _$myhttp_, _$location_) {
  2. $controller = _$controller_;
  3. $rootScope = _$rootScope_;
  4. $myhttp = _$myhttp_;
  5. $location = _$location_;
  6. });
  1. var $scope = $rootScope.$new();
  2. $controller('logqryController', {$scope: $scope, $myhttp: $myhttp, $location: $location});
  3. expect($scope.tabPage).toBe('/public/views/logqry_sub.html');

18、将angular 中scope与dom元素一一对应起来
  1. scope = angular.element($0).scope();
  2. scope.$id; // "003"
  3. function getScope(id) {
  4. var elem;
  5. $('.ng-scope').each(function () {
  6. var s = angular.element(this).scope(),
  7. sid = s.$id;
  8. if (sid == id) {
  9. elem = this;
  10. return false; // stop looking at the rest
  11. }
  12. });
  13. return elem;
  14. }
来自为知笔记
http://www.zhihu.com/question/36040694/answer/65892270?utm_campaign=webshare&utm_source=weibo&utm_medium=zhihu
 

angular 琐碎的更多相关文章

  1. 前端开发环境搭建 Grunt Bower、Requirejs 、 Angular

    现在web开发的趋势是前后端分离.前端采用某些js框架,后端采用某些语言提供restful API,两者以json格式进行数据交互. 如果后端采用node.js,则前后端可以使用同一种语言,共享某些可 ...

  2. Angular 2.0 从0到1:Rx--隐藏在Angular 2.x中利剑

    第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2.0 从0到1 (三)第四节:Angular 2.0 从0到1 (四)第五节: ...

  3. 用angular来思考问题How do I “think in AngularJS” if I have a jQuery background?

    [翻译]How do I “think in AngularJS” if I have a jQuery background? 1. 不要先设计页面,然后再使用DOM操作来改变它的展现 在jQuer ...

  4. 转:Backbone与Angular的比较

    原文来自于:http://www.infoq.com/cn/articles/backbone-vs-angular 将不同的思想和工具进行对比,是一种更好地理解它们的方式.在本文中,我首先将列举在创 ...

  5. 作为前端,我为什么选择 Angular 2?

    转自:https://sanwen8.cn/p/2226GkX.html 没有选择是痛苦的,有太多的选择却更加痛苦.而后者正是目前前端领域的真实写照.新的框架层出不穷:它难吗?它写得快吗?可维护性怎样 ...

  6. angular组件层次与军事指挥层级职责的联系

    又继续读angular文档,发现自己之前理解还是有误.按官方文档的思路service不是属于component的,是属于module的.module才是负责完整领域逻辑的单位.demo的英雄编辑器给我 ...

  7. 我为什么选择ANGULAR 2?

    没有选择是痛苦的,有太多的选择却更加痛苦.而后者正是目前前端领域的真实写照.新的框架层出不穷: 它难吗?它写得快吗?可维护性怎样?运行性能如何?社区如何?前景怎样?好就业吗?好招人吗?组建团队容易吗? ...

  8. 为什么选择Angular 2?

    没有选择是痛苦的,有太多的选择却更加痛苦.而后者正是目前前端领域的真实写照.新的框架层出不穷:它难吗?它写得快吗?可维护性怎样?运行性能如何?社区如何?前景怎样?好就业吗?好招人吗?组建团队容易吗? ...

  9. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

随机推荐

  1. day4-hdfs的核心工作原理\写数据流程 \读数据流程

    namenode元数据管理要点 1.什么是元数据? hdfs的目录结构及每一个文件的块信息(块的id,块的副本数量,块的存放位置<datanode>) 2.元数据由谁负责管理? namen ...

  2. Application特征

    1.位置:服务器内存,执行速度快2.使用范围:整个应用程序3.类型:任意类型4.声明周期:应用程序开始创建到销毁

  3. Num 15: NYOJ: 题目0002 : 括号配对问题 [ 栈(stack) ]

    原题连接      首先要了解有关栈的一些基本知识,即:      什么是栈,栈有什么作用:        1.什么是栈: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...

  4. luajit利用ffi结合C语言实现面向对象的封装库

    luajit中.利用ffi能够嵌入C.眼下luajit的最新版是2.0.4,在这之前的版本号我还不清楚这个扩展库详细怎么样,只是在2.04中,真的非常爽.  既然是嵌入C代码.那么要说让lua支持 ...

  5. 怎样把引用的jar包和本项目一起导出成jar文件

    之所以要导出Runnable JAR.是由于我们希望将引用到的Jar包与本项目一起进行导出,所以不要选Jar file 选File/Export...然后Java/Runnable JAR file, ...

  6. cocos2d-x 3.3 之卡牌设计 NO.4 定时器的使用(清理内存)

    我的卡牌游戏卡牌有两个类.各自是OpenCard和CardSprite. 不知道分成两个是不是有些奇怪.我分开的原因是:一个卡牌用来当手牌,一个用来当场上的牌,这样说是不是更加奇怪了.. 玩家类里定义 ...

  7. Python 批量修改root密码

    #_*_coding:utf8_*_ from multiprocessing import Process, Pool import paramiko import sys,os host_list ...

  8. android深入之设计模式(一)托付模式

    (一)托付模式简单介绍 托付模式是主要的设计模式之中的一个.托付.即是让还有一个对象帮你做事情. 更多的模式,如状态模式.策略模式.訪问者模式本质上是在更特殊的场合採用了托付模式. 托付模式使得我们能 ...

  9. POJ 2299 Ultra-QuickSort(线段树+离散化)

    题目地址:POJ 2299 这题以前用归并排序做过.线段树加上离散化也能够做.一般线段树的话会超时. 这题的数字最大到10^10次方,显然太大,可是能够利用下标,下标总共仅仅有50w.能够从数字大的開 ...

  10. charset='utf8mb4'

    charset='utf8mb4' conn = pymysql.connect(host=h, port=pt, user=u, passwd=p, db=db, charset='utf8mb4' ...