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

AngularJs指令解密

在例子中我们使用my-前缀(比如my-derictive)。 当AngularJS在DOM中遇到具名的指令时,会去匹配已经注册过的指令,并通过名字在注册过的对象中查找。...创建一个同当前作用域相隔离的作用域对象。...隔离作用域 通常情况下,当我们需要创建可复用的组建时,我们需要的就是具有隔离作用域的指令。它不依赖于上下文或者说是父级的作用域,所以可以随意迁移,不需要考虑依赖数据的问题。  ...隔离作用域实现起来很简单,只要将自定义指令返回对象中“scope”值写成“{}”就行。...使用隔离作用域时,可以将指令内部的隔离作用 域,同指令外部的作用域进行数据绑定: * 本地作用域属性:使用@符号将本地作用域同DOM属性的值进行绑定 * 双向绑定:通过=可以将本地作用域上的属性同父级作用域上的属性进行双向的数据绑定

2.2K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Angular面试题_session面试题

    AngularJS 作用域相关的一个坑(就是上文中 ng-if 产生一级作用域的坑,其实也是 javascript 原型链继承中值类型继承的坑。...因为使用 controllerAs 的话 view 上所有字段都绑定在一个引用的属性上,比如 vm.xx,所以坑不再存在)。...在 AngularJS 中,module 和 $provide 都可以提供依赖项的注册;内置的 injector 可以获取对象(自动完成依赖注入);依赖关系的声明,就是前面问题中提到的那样。..., iAttrs, controller) { … } iElement为编译后的element,已经与作用域关联起来,所以可以数据绑定 如果指令只进行DOM的修改,不进行数据绑定,那么配置在compile...函数中,如果指令要进行数据绑定,那么配置在link函数中。

    4.9K150

    angularJS学习之路(十七)---自定义指令

    terminal:Boolean,布尔型 作用:让angularJS停止在 当前元素  上比   本定义的指令  优先级 低 的所有  指令,相同优先级的指令还会执行 可以参考:ngView 和...,参数为:tElement,tAttrs 返回值是:代表模板的字符串 参数中:tElement,tAttrs 的t代表 template 是相对于 instance 的 作用:就是将多个DOM元素封装在一起...嵌入  另外一个 指令中 实现的目的就是:指令的内部可以访问外部指令的作用域 这个时候有个前提条件就是:scope选项必须是通过{}或者true设置成隔离作用域(独立作用域) controller:String...作用是:将一些特殊的服务注入到本指令中 函数: function(scope,element,attrs,transclude,otherInjectables) scope:与指令元素相关的当前的作用域...  被注入到指令中 element 当前指令对应的元素 attrs 当前元素  属性 组成的对象  比如id class 等,是键值对的形式 transclude 嵌入连接函数 controllerAs

    70410

    Angular企业级开发(7)-MVC之控制器

    1.MVC中的控制器 AngularJS的控制器主要为了把模型和视图连接在一起。大多数业务逻辑操作都会放在视图对应的控制器中。...当然如果我们能够把业务逻辑放到后端的REST服务中,就可以开发轻量级AngularJS应用。 涉及到多个控制器中使用的业务逻辑,需要放到一个公共的服务中,然后把改服务注入使用到该业务逻辑的控制器中。...3.控制器的作用 3.1 在控制器中初始化模型(添加属性) 创建控制器并将它附加到DOM元素之后,AngularJS会创建一个子作用域。子作用域保存着对应控制器的数据模型。...但是子级作用域和父级作用域中有相同的属性,子级使用自己的作用域。这个时候子级作用域要访问父级作用域的属性可以通过$parent。类似JavaScript本身的原型链方式。...如果有多个控制器并行,或者多个层级的嵌套,我们有时很难区分在视图上使用时哪个控制器下的属性,可以使用ControllerAs来避免这个问题。

    1.9K50

    AngularJS 1 教程

    toc 为什么需要前端框架 为什么2016年的今天仍然可以学习Angular 1 和jQuery 的不同 学习AngularJS 1 作用域、数据双向绑定、模块 Angualr 1实现双向绑定的脏检查...作用域、数据双向绑定、模块 作用域(scope)是AngualrJs中的基础概念,一般而言,一个controller一个scope , 每个controller中内置一个数据模型对象scope。...如果一般使用并不需要了解,使用内置的指令已经可以完成绝大多数功能。 AngularJs中本身以及内置了大量的指令,例如, ng-if , ng-repeat , 甚至ng-controller。...,算是AngularJS中高阶能够,可以从下面三点简单理解的是: scope字段,设定指令的作用域。...能够隔离scope,甚至能够灵活的方式和其他scope交互,既可以使用=强大的双向绑定,而且AngularJs 1.5 scope中 的功能。

    4.6K30

    再谈angularJS数据绑定机制及背后原理—angularJS常见问题总结

    2) 当调用 $digest 的时候,只触发当前作用域和它的子作用域上的监控,但是当调用 $apply 的时候,会触发作用域树上的所有监控。 什么时候手动调用 $apply() 方法?...ng-click中写的表达式,能使用JS原生对象上的方法,比如Math.max之类的吗?为什么? 不可以。...在使用controller的时候,为控制器注入$window与$scope,这个时候controller中的属性与方法是属于$scope的,而使用controllerAS的时候,可以将controller...对象,依次解析根节点后代,根据多种条件查找指令,并完成每个指令相关的操作(如指令的作用域,控制器绑定以及transclude等),最终返回每个指令的链接函数,并将所有指令的链接函数合成为一个处理后的链接函数...应用骨架 AngularJs $compile编译服务与指令 玩转Angular1(14)--使用$compile编译指令 Angular中$compile源码分析 angularjs使用$compile

    7.9K40

    AngularJS in Action读书笔记4(实战篇)——创建Statistic模块

    /statistic.html', controller: 'StatisticCtrl', requiresLogin: true, })   在不涉及到指令的情况下...说明StatisticController控制器没有起到该起的作用,话句话说,就是StatisticController失效,所以需要注册到boot.js以激活使用 (2)controlleras参数的使用...为了弄清楚这个controllerAs参数的使用,将这里的controllerAs:'usesrs'改为了controllerAs:'users123'   同时将statistic.html对应的users...设定的参数值一定要与页面中的变量同名,否则controllerAs参数失效。...另外声明一点,通过使用controllerAs这个参数,避免了$scope的使用,使得在StatisticController.js中大幅减少了$scope的出现,简化了代码。

    82770

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

    }表示创建一个全新的隔离作用域。...当你想要创建一个可重用的组件时隔离作用域是一个很好的选择,通过隔离作用域我们确保指令是‘独立’的,并可以轻松地插入到任何HTML app中,并且这种做法防止了父作用域被污染。...工厂方法一般在模块中使用。 ? 九、AngularJs继承: AngularJS中没有提供内建的用于继承的特性,AngularJS组件中使用普通的JavaScript继承模式。...H1始终显示world,H2中会显示键入值。 ? H1,H2都显示键入值。 2)控制器的继承:子控制器的作用域将会原型继承父控制器的作用域。...因此当你需要重用来自父控制器中的功能时,你所要做的就是在父作用域中添加相应的方法。这样一来,自控制器将会通过它的作用域的原型来获取父作用域中的所有方法。 ?

    5.4K150

    AngularJS在自动化测试中的应用

    一、什么是AngularJS 1、AngularJS是一组用来开发web页面的框架、模板以及数据绑定和丰富UI的组件; 2、AngularJS提供了一系列健壮的功能,以及将代码隔离成模块的方法; 3、AngularJS...当scope设置为true时,会从父作用域继承并创建一个新的作用域对象。有三种绑定策略@ = &。...AngularJS应用中的服务是一些用依赖注入捆绑在一起的、可替换的对象。这些对象可以提供一些封装好的逻辑操作,以供调用。...这就是程序里的依赖注入。只要声明了需要什么,在使用的时候就可以得到什么。 AngularJS中的依赖注入 第一种方式:通过方法参数名声明依赖。这种方式不推荐使用,因为js文件压缩后方法参数名会改变。...3、指令的详细定义方式。很多时候,简单的指令写法不能满足需求,需要更深度的定制指令。 4、如何进行测试。在AngularJS中,测试非常简单,可以使用其它的测试库进行测试(如Jasmine)。

    1.9K20

    AngularJS in Action读书笔记5(实战篇)——在directive中引入D3饼状图显示

    同时遇到了一些坑比如:   controllerAs参数的使用,以及它的利与弊   Statistic的功能分为两块:   第一是数据统计,通过上篇的StatisticController控制器就能实现传值并配合...今天会讲到如何使用指令,为什么要用指令以及在编码过程中遇到的一些各色问题。   ...隔离 scope :directive 中设置 scope : { }   之所以会牵扯到这个问题,是在注入statusArr时联想到的。   ...当在directive中不添加scope声明的时候,默认是directive和controller共用scope,这会降低指令的重用性,也有可能会"弄脏"scope。...今天主要介绍的内容有:   添加一个新的页面用于存放statistic出来的数据信息和图形信息;   如何引入D3引擎;   为什么要使用指令;   我的代码逻辑中如何使用指令;   html的命名规范坑

    2.3K60

    AngularJS入门心得1——directive和controller如何通信

    个人意见,For your information 备注:视频教程,最近有看过大漠老师的AngularJS教程,觉得还不错,但是感觉没有一点基础还是听不懂的,或者要看好几遍(不是做广告)   3.为什么要了解...今天主要来说说AngularJS的三个指令“@”,“=”,“&”的用法和区别(这个问题困扰了我大半天,和Frank交流多次,我才明白)   1.指令作用域中的@   作用是把当前属性作为字符串传递。   ...2.指令作用域中的=   作用是与父scope中的属性进行双向绑定。 1 指令和控制器的作用域,在JS代码实现了双向绑定,做到了控制器与指令在各自作用域内能够影响对方,也就是双向通信,具体思路与@类似,不赘述,上图: ?   ...3.指令作用域中的&   主要作用是传递一个来自父scope的函数,稍后调用。 1 <!

    1.7K60

    AngularJs之Scope作用域

    什么是scope   AngularJS 中,作用域是一个指向应用模型的对象,它是表达式的执行环境。作用域有层次结构,这个层次和相应的 DOM 几乎是一样的。作用域能监控表达式和传递事件。   ...在 HTML 代码中,一旦一个 ng-app 指令被定义,那么一个作用域就产生了,由 ng-app 所生成的作用域比较特殊,它是一个根作用域($rootScope),它是其他所有$Scope 的最顶层。...以下 HTML 中定义了三个作用域,分别是由 ng-app 指令所创建的$rootScope,parentCtrl 和 childCtrl 所创建的子作用域,这其中 childCtrl 生成的作用域又是...在对 directive 的定义中,我们添加上一个 scope:{} 属性,就为这个 directive 创建出了一个隔离作用域。...因此,如果在定义了孤立作用域的 AngularJS directive 中想要访问其父作用域的属性,则得到的值为 undefined。代码如下: 示例六:独立作用域的隔离性 <!

    1.6K30

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券