ブラウザーで Markdown をレンダリングできるように、AngularJS を使用して HTML のディレクティブを作成しようとしています。私が望むのは、指定されたファイルをロードして正しくレンダリングする属性を持つ<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 リンク(John Linquist の例に基づく) を次に示します。これは属性では機能しませんsrc
が、モデルで指定されたマークダウン テキスト文字列を読み込むことができます。
src
このコードを変更して、タグで指定されたファイルをロードする方法を教えてください。AngularJS が提供するを使用することを考えてい$http
ましたが、ディレクティブ定義内で実際に使用することができませんでした。
私が達成したいことは<markdown src="a/b/c.md" />