AngularJs 作用域 - 如何正确从 DOM 获取作用域

AngularJs scope - how to get scope from DOM correctly?

本文关键字:作用域 DOM 获取 AngularJs 何正确      更新时间:2023-09-26

我有一个自定义指令,它有自己的隔离作用域:

angular.module('app').directive('custom', function(){
    return {
      scope: {
        text: '@'
      },
      link: function(scope, element){
        alert(scope.$id);
        alert(element.scope().$id);
      }
    }
  })

它绑定到单个 h1 标签:<h1 custom text="Hello Plunker!"></h1>

有人可以解释为什么我在第一个和第二个警报上得到不同的范围值吗?有没有办法使用 DOM 元素和 scope() 调用来获取我的隔离范围?

提前致谢

下面是一个示例:http://plnkr.co/edit/mdLS5eZAqw4YBWwLZWbo

scope指的是指令的范围,一个孤立的范围。

element.scope()是指与该元素关联的范围。

要通过element获取隔离范围,您可以调用 element.isolateScope()