2014-02-10 2 views
1

Я хочу, чтобы иметь возможность создавать AngularJS модули во время выполнения, так что я делаю это:Как создать модуль во время выполнения в AngularJS?

<section class="panel portlet-item" id="crashpanel"></section> 
<script type="text/javascript"> 
var angularApp = angular.module("Crashpanel", []); 
angularApp.controller("CrashpanelCtrl", function ($scope, $http, $compile) 
{ 
    console.log("Hello"); 
}); 
angular.bootstrap(angular.element("#crashpanel"), [ "Crashpanel" ]); 
</script> 

Но «Hello» не отображается, так как контроллер не подключен к элементу. Как подключить контроллер к элементу?

+0

Вы хотите подключить контроллер к своей секции во время работы? Вам это действительно нужно? –

+0

@Rodrigo Да, еще я получаю следующую ошибку: http://docs.angularjs.org/error/ng:areq?p0=CrashpanelCtrl&p1=not%20a%20function,%20got%20undefined –

+0

положить ng-app = "Crashpanel " –

ответ

1

Вы должны поместить данных нг-приложение = «Crashpanel» где-то в вашем коде, чтобы сделать ссылку на ваш модуль, если вы хотите, пример:

<html data-ng-app="Crashpanel"> 

Ваш участок должен иметь нг-контроллер атрибута (как сказал другой пользователь), чтобы сделать ссылку на ваш контроллер.

<section class="panel portlet-item" id="crashpanel" data-ng-controller="CrashpanelCtrl"></section> 
+0

Спасибо! Он работает, но я не понимаю, почему ... В чем разница между наличием ng-приложения в теге html и его использованием в теге раздела? –

+0

эта директива автоматически загружает ваше приложение, я думаю (я не уверен), что после того, как angularjs на этапе компиляции найдут эту директиву, он будет искать только другие директивы ниже (дети) этого элемента html, а не сам элемент , –

0

Изменить элемент к этому:

<section class="panel portlet-item" id="crashpanel" data-ng-controller="CrashpanelCtrl"></section> 
+0

Я получаю эту ошибку http://docs.angularjs.org/error/ng:areq?p0=CrashpanelCtrl&p1=not%20a%20function,%20got%20undefined –

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