猿问

angular指令的隔离作用域问题

 **指令中的scope:{}时不是会创建隔离作用域,指令隔离作用域内不能访问父作用域的属性,然而这个竟然能,望高手指点一二,刚上手angular-----**

 <div ng-init="myProperty = 'wow, this is cool'"></div>

  Surrounding scope: {{ myProperty }}

  <div my-inherit-scope-directive>

    Inside an directive with inherited scope: {{ myProperty }}

    

  </div>

  <div my-directive>

    Inside myDirective, isolate scope: {{ myProperty }} **//这里的myProperty竟然也能访问父作用域的myProperty**

  

   <div>


  <script>

    angular.module('myApp', [])

    .directive('myDirective', function() {

      return {

        restrict: 'A',

        scope: {}

      };

    })

    .directive('myInheritScopeDirective', function() {

      return {

        restrict: 'A',

        scope: true

      };

    })

  </script>


慕后森
浏览 526回答 1
1回答

眼眸繁星

你应该这么写://当然html中就不需要写template中的部分了。.directive('myDirective',&nbsp;function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; restrict:&nbsp;'A',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scope:&nbsp;{},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:"Inside&nbsp;myDirective,&nbsp;isolate&nbsp;scope:&nbsp;{{&nbsp;myProperty&nbsp;}}" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;})按照你的写法,添加了指令的元素并没有按照你的设计被编译。或者干脆这么写.directive('mysss',&nbsp;function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restrict:&nbsp;'A',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scope:&nbsp;{},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;replace&nbsp;:&nbsp;true,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:"<div>Inside&nbsp;an&nbsp;directive&nbsp;with&nbsp;inherited&nbsp;scope:&nbsp;{{&nbsp;myProperty&nbsp;}}</div>" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;})//replace:true时,添加了指令的元素会被template内内容整体替换。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答