You need to use $apply:
$ apply () is used to execute an expression in angular from outside angular. (For example, from browser events DOM, setTimeout, XHR or third-party libraries). Because we call the angular structure, we need to execute the correct life cycle handling exceptions, running hours.
, , , :
1) :
var dynamicContent = "<div id='someId' ng-app> {{ 2 + 2 }} </div>";
$('.expression').html(dynamicContent);
var element = angular.element(document.querySelector('#someId'));
2) :
angular.bootstrap(element, []);
3) :
var elementScope = element.scope();
4) $apply:
elementScope.$apply();
: http://jsfiddle.net/5Xhs9/
:
ng-app"myApp" div, AngularJS , :
<div id='notes' ng-controller='NotesController'> {{ notes.length }} </div>
NotesController . :
1) $injector:
var $injector = angular.element(document.querySelector('.container')).injector();
2) $injector, scope. $apply:
var element = angular.element(document.querySelector('#notes'));
$injector.invoke(function($compile) {
var scope = element.scope();
$compile(element)(scope);
scope.$apply();
});
: http://plnkr.co/edit/P6VwLee6AUWO7aDT601m?p=preview