在Angular中创建自己的简单降价

时间:2014-08-22 08:18:01

标签: angularjs

我想在我的Angularjs应用程序中引入降价型功能,但我不会使用(或提供)Markdown引入的全套命令。我想只是一些使用花括号来表示特殊内容的基本功能。

例如:{ https://google.com }将成为<a href="https://google.com">https://google.com</a>并在预览窗格中显示为链接。

我看了这个视频(https://www.youtube.com/watch?v=nKJDHnXaKTY)给了我一些想法,但是它使用了我真不想使用的Showdown。

有人能给我任何指示吗?我假设一个指令将是这里的方式,但我需要使用正则表达式吗?

2 个答案:

答案 0 :(得分:0)

你必须建立一个解析器。

这样的事情可能会给你一个开始:

假设您要转换分数:1/2将 1 / 2

 /**
 * Usage finds {#}|{#} and converts to math notation
 **/ 
 function transformFracs() {
 //Grab digits with in {} recording only the numbers
 var regex = /{(\d+)}\|{(\d+)}/;
 //Cache for performance!
 var div = $(this);
 //Replace using html fraction notaion
 var afterReplace = div.html().replace(regex,
     "<sup>$1</sup>" +
     "&frasl;" +
     "<sub>$2</sub>")
 //Replace content of original div
 div.html(afterReplace);
 }
$(".editable").blur(transformFracs);

我希望this会有所启动

答案 1 :(得分:0)

您可以创建一个指令并修改compile函数中的外部html。 Plunker

app.directive('markDown', function() {
  return {
  restrict: 'A',
  replace: true,
  link: function(scope, element, attrs) {

  },
  compile: function(tElement, tAttrs, transclude) {

    tElement[0].outerHTML = tElement[0].innerText + "<a href='#'>Go crazy</a>";
    console.log(tElement);

   }
 };
});