2014-11-03 3 views
0

Я хотел бы взаимодействовать с областью внутри добавленного элемента html на странице, может кто-нибудь, пожалуйста, покажите мне, как обновить эту область?Как обновить область добавляемого элемента html?

var overlay = angular.element('<div id="flyout-overlay" class="page-overlay global" ng-show="testScope"></div>'); 
mainContent.append(overlay); 

$timeout(function(){ 
    $scope.testScope = true; // how? 
},500); 
+0

использовать $ compile service в angularjs –

ответ

1

использование $ службы компиляции

$compile(overlay); 

вот documentation

не забудьте добавить $compile зависимость в контроллере

док говорит,

enter image description here

применить к делу,

'<div id="flyout-overlay" class="page-overlay global" ng-show="testScope"></div>'

1: компилировать - $ компилировать собрать все директивы, напр, он будет собирать ng-show директива

2: ссылка - объединить директива с областью действия ..., например, она свяжет директиву ng-show="testScope" с областью действия.

+0

спасибо, но я новичок в ng и, возможно, потребует некоторого ручного хранения. Мне трудно понять документацию. можете ли вы, пожалуйста, изложить ответ для меня? – muudless

+0

@muudless создать несколько plunk на plnkr.co, это поможет людям помочь вам – Cherniv

1

@ Kalhano дал прекрасный ответ, но так как вы не знаете о компиляции $ comp, вот код для вас. Просто небольшое изменение ....

var overlayTmpl = angular.element('<div id="flyout-overlay" class="page-overlay global" ng-show="testScope"></div>'); 

var overlay = $compile(overlayTmpl)($scope); 

mainContent.append(overlay); 

$timeout(function(){ 
    $scope.testScope = true; // how? 
},500); 

в словах, $ компилировать сервис компилирует HTML и связывает его с объемом предоставленными вами

для лучшего понимания чтения угловых документаций.

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