Я хочу использовать директиву ng-include из кода. Что-то вроде
var html = '<div ng-include="\'myTemplate.html\'"></div>';
$compile(html)($scope);
angular.element(document.getElementById('myDiv')).append(html);
но этот не работает должным образом. Может ли кто-нибудь объяснить, как достичь этого правильно?
Измените порядок своих заявлений.
var html = '<div id="dynamicID" ng-include="\'myTemplate.html\'"></div>';
var ngEl = angular.element(document.getElementById('myDiv'));
ngEl.append(html);
$compile(ngEl.find('#dynamicID'))($scope);
Если вы хотите включить html на свою веб-страницу, вы должны вместо этого использовать ng-bing-html:
HTML
<div id="myDiv" ng-bind-html="template"></div>
JS
.controller('name', function($scope, $http, $sce, ...) {
$http.get('myTemplate.html').success(function(template) {
$scope.template = $sce.trustAsHtml(template);
});
});
myTemplate.html
в элемент ng-app? ИлиmyTemplate.html
это правильный URL-адрес, по которому можно получить шаблон?