登录

angular.js - angularjs中自定义指令scope的问题

angularjs中自定义的指令中scope的值为{}创造了一个隔离作用域,但依然能访问到父级作用域中的属性,怎么回事?(隔离作用域应该不能访问父级作用域的属性啊,在没有进行绑定策略之前)

# AngularJS
淡淡烟草味淡淡烟草味2229 天前495 次浏览

全部回复(4) 我要回复

  • 巴扎黑

    巴扎黑2017-05-15 17:09:33

    先说一点你这个例子里也没给scope属性赋值啊。scope属性三种取值:true,false,{}。false是默认值。

    默认情况,false。此时,子作用域和父作用域是一个,scope.$$id的值一样。

    为true时是创建一个新作用域,scope.$$id值不同了。不过此作用域继承自父作用域。 就是和原生js作用域链的特性相同,子作用域可访问父作用域中的属性和方法,父作用域不可访问子作用域的属性属性和方法。

    为{}时,是真正的隔离。这时自定义指令的作用域和父作用域完全没关系了。但如果你还要访问父作用域的属性方法怎么办,就把相应的属性配置在{}中。具体配置方法题主自行谷歌百度吧。

    回复
    0
  • 天蓬老师

    天蓬老师2017-05-15 17:09:33

    同一个控制器里都可以访问到,不同的控制器就访问不到

    回复
    0
  • ringa_lee

    ringa_lee2017-05-15 17:09:33

    你没有隔离呀,隔离的话要加scope:{}

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:09:33

    隔离scope有两种方式:

    scope: true
    scope: {}

    回复
    0
  • 取消回复发送