2015-02-25 3 views
0

Может ли кто-нибудь указать пример форсунки AngularJS. Вот копия кода из API. "В следующем примере новый блок HTML, содержащий директиву ng-controller, добавляется в конец тела документа с помощью JQuery. Затем мы скомпилируем и привяжем его к текущей области AngularJS."Инжектор AngularJS

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> 
 
<body ng-app="myApp"> 
 
</body> 
 
<script> 
 
    angular.module('myApp', []); 
 
var $div = $('<div ng-controller="formController">123</div>'); 
 
$('body').append($div); 
 
angular.element(document.body).injector().invoke(function($compile) { 
 
    var scope = angular.element($div).scope(); 
 
    $compile($div)(scope); 
 
}); 
 

 
function formController ($scope,$http) { 
 
} 
 
</script>

скопировать и вставить его в HTML-страницы, но это не work.with ошибку

Uncaught ReferenceError: $ is not defined

UPDATE: Я включил JQuery, и получил новый ошибка:

Uncaught TypeError: Cannot read property 'invoke' of undefined

+0

Вам нужно включить jQuery. – Sjoerd222888

+0

Включили ли вы jQuery в свой проект? – Beri

+0

Спасибо, я его модифицировал, но получил сообщение об ошибке msg. – cityCoder

ответ

1
  1. Создайте угловой модуль - angular.module ('myApp', []);
  2. Обновить элемент кузова для использования этого модуля - <body ng-app="myApp">
  3. Дайте некоторое время для углового захвата приложения.

    setTimeout(function() { 
        // now you can use the injector. 
        var $div = $('<div ng-controller="formController">123</div>'); 
        $('body').append($div); 
        angular.element(document.body).injector().invoke(function($compile) { 
         var scope = angular.element($div).scope(); 
         $compile($div)(scope); 
        }); 
    }, 100); 
    

Ваш пример должен работать с этими изменениями.

+0

Я никогда не использовал AngularJS раньше. Я изменил, как вы сказали, но это не сработает, не могли бы вы помочь мне проверить, не изменилась ли моя модификация, или еще существует другая ошибка. – cityCoder

+0

Обновлен ответ. Если он все еще не работает, увеличьте время ожидания, указанное в функции тайм-аута, и попробуйте. –

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