angular的作用域破坏

广告位招租
扫码页面底部二维码联系

angular里面,有两个内置指令非常危【原创不易,请尊重版权】本文版权归作者所有,未经授权不得转载。险一个是ng-if一个是ng-repea【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。t,这两个指令会让你在写模板的时候,输出【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。结果不一定按照预期显示。angular里【原创不易,请尊重版权】【关注微信公众号:wwwtangshuangnet】面的作用域遵循js的原型继承模型,子作用本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。域继承父作用域,那么相当于子作用域的原型本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】链是它父作用域的一个节点。而我们在创建一本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。个directive的时候,scope参【版权所有,侵权必究】【本文首发于唐霜的博客】数有三种方式:

转载请注明出处:www.tangshuang.net原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。
  • true:共享父作用域的scope,在d【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。irective内对scope的任何修改未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net都会同步给父作用域,也就是内外scope本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net完全是同一个
  • 【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。【访问 www.tangshuang.net 获取更多精彩内容】【本文首发于唐霜的博客】
  • false:创建一个隔离作用域,和父作用【作者:唐霜】著作权归作者所有,禁止商业用途转载。域完全没有任何关系,directive内【作者:唐霜】【未经授权禁止转载】部的任何修改都不会影响父作用域的scop本文作者:唐霜,转载请注明出处。【作者:唐霜】e上的数据
  • 本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】【转载请注明来源】【未经授权禁止转载】
  • { …props }:创建一【本文首发于唐霜的博客】【本文首发于唐霜的博客】个有条件的隔离作用域,虽然这个作用域基本【未经授权禁止转载】【转载请注明来源】面是和父作用域隔离的,但是对象内的参数可著作权归作者所有,禁止商业用途转载。【版权所有,侵权必究】以实现绑定,仅这些props可以产生影响【版权所有,侵权必究】【转载请注明来源】,其中又有3种形式,@和&仅接收【关注微信公众号:wwwtangshuangnet】【版权所有】唐霜 www.tangshuang.net外部作用域的变化,而=可以实现内部的改动【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。同步到外部去。也就是说,只有=的那部分是【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.net共享的。
  • 著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.net【版权所有,侵权必究】【版权所有,侵权必究】

这些知识可以随便查资料了解。本文作者:唐霜,转载请注明出处。

原创内容,盗版必究。转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。

但是,ng-if和ng-repeat会打【原创不易,请尊重版权】未经授权,禁止复制转载。破这种共享关系。如果你在一个direct【作者:唐霜】本文版权归作者所有,未经授权不得转载。ive中使用了另外一个directive【作者:唐霜】【转载请注明来源】,而想让它们拥有同样的数据绑定(大部分情【版权所有】唐霜 www.tangshuang.net【转载请注明来源】况下我们都这样希望),那么一旦你在子di【未经授权禁止转载】【访问 www.tangshuang.net 获取更多精彩内容】retive上使用了ng-if或ng-r【本文受版权保护】【作者:唐霜】epeat,那么情况就发生了变化。这两个【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】内置指令会创建一个隔离作用域,而非共享父【原创不易,请尊重版权】【版权所有,侵权必究】作用域。

【本文首发于唐霜的博客】【本文首发于唐霜的博客】【本文受版权保护】【原创内容,转载请注明出处】【转载请注明来源】

【未经授权禁止转载】【本文受版权保护】著作权归作者所有,禁止商业用途转载。【转载请注明来源】转载请注明出处:www.tangshuang.net

上面这张图示意了这种令人抓狂场景产生的原【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。因。原本,父子指令共享了一个作用域,但是【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。当你在子指令上使用了ng-if的时候,a转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。ngular内部会创建一个隔离作用域,n原创内容,盗版必究。【版权所有,侵权必究】g-if作为指令,仅仅接收父作用域传过来本文作者:唐霜,转载请注明出处。原创内容,盗版必究。的一个值,但它不会回写数据,只是控制了渲著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】染效果。而这个时候,my-child-d【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.netirective被放在ng-if作用域的本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。内部,这时,它共享的,是ng-if的作用【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net域,而这个时候,你把child scop未经授权,禁止复制转载。【本文受版权保护】e打印出来看,会发现,啥也没有,父作用域本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。的东西完全没有传过来。但是,不要心急,由原创内容,盗版必究。本文作者:唐霜,转载请注明出处。于angualr作用域的继承性,你仍然可转载请注明出处:www.tangshuang.net【版权所有,侵权必究】以读到一些scope上的值,但是,你不能【转载请注明来源】未经授权,禁止复制转载。反写,一旦你开始反写,你发现,父作用域接【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。收不到你的反写内容。反写的内容被直接写在【本文首发于唐霜的博客】【原创不易,请尊重版权】了ng-if scope上,而如果你精通未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。js的原型链模型,就知道,如果一个对象的著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】原型链上有某属性,这个时候,你再对这个对【转载请注明来源】【本文受版权保护】象的同名属性赋值,那么值被覆盖了,它永远原创内容,盗版必究。本文作者:唐霜,转载请注明出处。无法操作原型链的上游。不过,angula转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】r可以,因为它的scope提供了父级作用【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。域的引用$parent,所以,当你在ch转载请注明出处:www.tangshuang.net本文作者:唐霜,转载请注明出处。ild scope上反写不成功时,往往在转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net前面加$parent.就行了。而如果,你【原创不易,请尊重版权】【本文受版权保护】的child scope本身也就是一个隔【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。离作用域,那反写是不可能了,但你还可以通本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net过$parent.$parent.来操作【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net父级作用域。

未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】

遇到ng-repeat无法获取到数据时,本文作者:唐霜,转载请注明出处。【本文受版权保护】往往是因为ng-repeat比ng-if转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】更狠,它创建了一个更封闭的隔离作用域,但【转载请注明来源】【版权所有,侵权必究】你按照上述进行思考,也可以实现自己的目的本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】

【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。原创内容,盗版必究。【本文受版权保护】