2016-10-27 4 views
0

изображения, что у меня есть следующий код .js:Как добавить новый модуль динамически?

$.ajax({ 
    url: 'some/url', 
    success: function(result) { 
     $activeTabContainer.html(result); 
    } 
}); 

$activeTabContainer является jQuery выбран дел.

Объект результат содержит HTML (с тег сценария), возможно, что-то вроде:

<div ng-app="mySpa"> 
    <div ng-controller="myController"></div> 
</div> 

, а затем в том же .html файл сценария тег, который содержит:

(function() { 
    "use strict"; 
    var app = angular.module("mySpa", []); 
    app.controller("myController", [function() { 
     debugger; 
    }]); 
})(); 

Он отлично выполняет часть .js в теге скрипта, но я думаю, что угловой должен быть каким-то образом уведомлен о динамически добавленном модуле и его контроллеры, что-то вроде динамической загрузки.

У кого-нибудь есть идея?

+2

Не смешивать Угловое и JQuery. Выбранный div jQuery недоступен после того, как угловой загружен. Вам нужно использовать угловые $ http и кодирование. – Hoyen

+0

Я мог буквально рассчитывать с одной стороны на то, сколько раз мне приходилось использовать jQuery в Angular - обычно, если вы достигаете этого, это означает, что вы делаете что-то субоптимальное. –

+0

@ Хойен Я не смешиваю. –

ответ

0

Я нашел решение, это происходит потому, что угловой не загружается автоматически, когда новый модуль добавляется динамически. Вы должны инициализировать ее вручную:

angular.bootstrap(document, ["mySpa"]); 

И лото это работает :-)

Ссылка на документацию: https://docs.angularjs.org/api/ng/function/angular.bootstrap