Простой корпус: запросите контроллер $scope
для создания детской области. Эта новая область применения будет применена к функции привязки $compile
, то есть к созданию программной директивы.угловой js: программно создать экземпляр области?
Моя потребность падает только вне scope: true
декларации в определении директивы - я делать нужен частный объем директивы, но я не хочу один созданные рамки каждый раз, когда я создаю экземпляр директивы. Скорее, я хотел бы reapply существующий объем для свежей связи - свежая директива.
IOW, я хочу учить новую собаку старым трюкам.
Я говорю о scope obtained from the compiled directive (см.: Извлечение областей из DOM).
Рассмотрите сценарий, в котором представление HTML директивы (назовем ее «половиной») может перемещаться внутри и снаружи документа. Я просто хочу сохранить его состояние (назовем его «другой половиной») и reapply это свежеприготовленный экземпляр с половиной скомпилированных директив.
Scope иерархия будет соблюдена, то есть новая директива, например бы прижимаемся себя в том же угловой-DOM области, как это было в прежней жизни, так что я не думаю любые червоточины будут открыты и не антиматерия создано.
Супер-надуманный plunk для вашего удовольствия.
Что касается плунжера, то лучше область создается вне директивы. (Plunk обновил выделение прецедента, для тех, кто волнует.) Тем не менее, это отвечает на вопрос. Кто говорит, что угловой документ плохой? * Я делаю. – Steven
Итак, теоретически, вы можете скомпилировать новую директиву (которая имеет некоторые функции в ее области) другой директивой, используя что-то вроде $ compile (' ') ($ rootScope. $ New (true);? –