#angularjs
#angularjs
Вопрос:
Получить ответ
<section ng-controller="BookingController"></section>
Директива
MyApp.directive "loadThing", ($rootScope, $compile) ->
return {
restrict: "AE",
link: (scope, element, attrs) ->
$.get BASE_URL '/load/template/' attrs.loadThing, (response) ->
element.html(response)
$compile(element)
}
Я загружаю шаблон с помощью ajax, в котором объявлен ng-контроллер, но контроллер не инициализируется.
Что я здесь делаю не так?
Ответ №1:
Ссылка обычно используется для поведения на основе событий, я не уверен, почему вы используете Ajax, но вы можете попробовать объявить свой контроллер и шаблон в контроллере. Это будет выглядеть примерно так:
MyApp.directive('loadThing', function($rootScope, $compile) {
return {
restrict: "AE",
templateUrl: 'yourPathHere.js',
controller: 'MyController'
}
});
Ответ №2:
Вздох, это была глупая ошибка.
Необходимо было:
template = $(response)
$compile(template)(scope)
element.append(template)
Ключевой недостаток не заключался в вызове функции, возвращаемой $compile .