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

Isolated Scope исходя из его названия действительно представляет собою изолированный объект, не наследующий никаких свойств от тех скоупов, которые иерархически находятся выше него.

С технической точки зрения все скоупы (включая и rootScope) создаются одной функцией конструктором, поэтому безусловно они будут иметь общий набор свойств и методов, но это как правило внутренние свойства и методы Angular.
Вот здесь есть описание и куски кода, если интересна реализация? http://jonathancreamer.com/adding-cl...ce-in-angular/. Работу наследования можно проверить и самому - ходя по внутренним свойствам скоупа $scope.$parent, $scope.$parent.$parent и проверяя там наличие тех или иных данных, если сомневаетесь.

Так что все работает канонично - если хотите, чтобы isolated scope что-либо наследовал - придется передавать это как параметры скоупа в конфигурации директивы: scope: { prop1: '=', prop2: '=' }.

Теперь к твоему вопросу
Смотри, твой сниппет кода, который начинается с <input type="text" , в том виде в котором ты его скинул с точки зрения ангуляр приложения "висит в воздухе". Т. е. у тебя есть темплейт, тебе нужно "место для хранения данных".
У тебя есть 2 пути:
1. Создать контроллер, контроллер это "glue" между данными и темплейтом, https://docs.angularjs.org/guide/controller здесь больше информации. Соотв-но ты можешь разместить свойство myUrl в нем.
2. Второй подход - это создать директиву. Т. е. твой темплейт будет темплейтом директивы, свойство myUrl будет лежать либо в контроллере директивы (да, у директивы может быть контроллер) либо в специальной функции линковке link. В таком случае у тебя будет директива в директива, родительская будет связана свойством myUrl с дочерней.

Если что-то не понятно - пиши.
Ответить с цитированием