Показать сообщение отдельно
  #6 (permalink)  
Старый 01.12.2015, 00:14
Интересующийся
Отправить личное сообщение для grego Посмотреть профиль Найти все сообщения от grego
 
Регистрация: 09.01.2012
Сообщений: 26

Так, прошу прощения за поздний ответ.

1. Я вижу использование ng-app и в этом случае действительно директива связывает используемые данные с rootScope, т. е. ng-model="myUrl" смотрит на rootScope.myUrl. На практике такое встретишь редко, все же "загрязнять" рутовый скоуп считается bad practice, но в качестве тестового примера безусловно подойдет.

2. Теперь непосредственно к твоему вопросу (надеюсь сейчас я на него отвечу).
А. Итак, у тебя есть директива <div my-directive, с атрибутом some-attr="{{ myUrl }}". Т. е. мы в качестве значения атрибута some-attr поставляем извне myUrl (в данном случае это тот самый myUrl из рут скоупа). Фигурные скобки или обычные - это всего лишь способы биндинга данных, можешь почитать тут https://gist.github.com/CMCDragonkai/6282750 подробнее.
Б. Теперь идем в код непосредственно самой директивы и обращаем пристальное внимание на объект scope, видим следующее:
myUrl: '@someAttr',
myLinkText: '@'
Это говорит нам о следующем - для директивы будет создан изолированный объект-скоуп, в котором будут инициализированы 2 свойства - scope.myUrl и scope.myLinkText. Первое свойство будет связано со значением, которое подается в директиву в качестве атрибута some-attr (синтаксис таков, что в перечислении свойств используется camel case нотация атрибутов).
Вот и получается следующее - в изолированном скоупе появляется собственное свойство scope.myUrl - оно не унаследовано от родительского скоупа, но за счет создания связи - оно будет изменяться в обе стороны со свойством myUrl из рут скоупа, которое подано как значение someAttr.
В принципе чтобы не путаться, можно объявить изолированный скоуп как

scope: {
isolatedMyUrl: '@someAttr',
myLinkText: '@'
},
и поменять темплейт директивы
template: '<a href="{{isolatedMyUrl}}">' +
'{{myLinkText}}</a>'
Работать все будет так же.
Ответить с цитированием