Я пытаюсь сделать директиву для HTML, используя AngularJS, чтобы я мог отображать Markdown в браузере. Я хочу иметь тег <markdown>
с атрибутом src
, который будет загружать указанный файл и отображать его правильно.
Я частично реализовал это следующим образом:
function Main($scope) {
$scope.theContent = '#asgakfgajgfas\n##akfaljfqpo\ndhvkajvlbndvm';
};
angular.module('myApp', [])
.directive("markdown", function ($compile) {
return {
restrict: 'E',
require: 'model',
scope: {
value: "=model"
},
template: '<div ng-bind-html-unsafe="value | markdown"></div>'
};
}).filter('markdown', function () {
var converter = new Showdown.converter();
return function (value) {
return converter.makeHtml(value || '');
};
});
И соответствующий HTML -
<div ng-controller="Main">
<markdown model="theContent"></markdown>
</div>
Вот ссылка jsFiddle (на примере Джона Линквиста) для вышеуказанного кода. Это не работает с атрибутом src
, однако он может загрузить текстовую строку разметки, указанную в модели.
Не могли бы вы рассказать мне, как я могу изменить этот код, чтобы загрузить файл, указанный в теге src
. Я думал об использовании $http
, предоставленного AngularJS, но не смог заставить себя использовать его внутри определения директивы.
То, что я хотел бы достичь, - <markdown src="a/b/c.md" />