2014-11-20 1 views
2

У меня есть пользовательская директива со своей собственной изолированной сферой:AngularJs scope - как правильно получить область из DOM?

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

+0

От чего кажется 'element.scope()' получает основную область. 'scope' является дочерней областью' element.scope() '. Почему это так, я не уверен –

ответ

2

scope относится к области применения директивы, изолированной области.

element.scope() относится к области, связанной с этим элементом.

Чтобы получить изолированный объект от element, вы можете позвонить по телефону element.isolateScope().

Смежные вопросы