Я пытаюсь создать директиву, которая будет загружать страницу и сделать ее доступной в сервисе и как область видимости, и она будет содержать контент внутри элемента директивы.AngularJS как создать директиву с содержимым HTML?
Это должно быть довольно самоуправления объяснения (упрощенно), что я пытаюсь сделать:
<cms-page page-id="829">
<h1>Testing</h1>
<ul ui-sortable ng-model="pageData.sections.main">
<li ng-repeat="element in pageData.CmsPage.sections.main track by $index">
<div ng-include="'/templates/cms/elements/' + element.element_type + '.html'"></div>
</li>
</ul>
<pre>{{pageData | json}}</pre>
</cms-page>
Проблема с этим в настоящее время, что он не показывает {{pageData}}. Как я могу создать директиву, которая покажет существующую разметку и проанализирует существующие разметки и дочерние директивы?
Вот моя директива:
angular.module(cms).directive('cmsPage', ['CmsPage', 'CmsPagesService', function(CmsPage, CmsPagesService) {
return {
restrict: 'E',
transclude: true,
template: '<div ng-transclude></div>',
scope: {
pageId: '@pageId'
},
controller: function($scope) {
$scope.pageData = {};
CmsPagesService.get($scope.pageId).then(function(result) {
if (result.status == 'success') {
$scope.pageData = result.data;
} else {
throw 'Page failed to load.';
}
});
$scope.$watch('pageData', function() {
CmsPage.setPage($scope.pageData);
});
}
};
}]);
Не могли бы вы сделать что-то вроде этого?
–