指令添加评论

时间:2014-10-30 17:46:43

标签: angularjs angularjs-directive comments

我发现在HTML <!-- My comment -->上注释代码的方式有点太长了,在其他语言中你可以用2来做同样的7个字符。

我是AngularJS的新手并且在阅读一些文章&#34;教授HTML新技巧&#34; 时看到了这个问题,是否有可能编写一个指令来缩短在HTML中发表评论的方式?

可能是这样的:

<c My comment>

我知道评论的格式有违反某些规则,或者没有IDE快捷方式,但我仍然要问,看看如何做这样的事情(并学习新的技巧)或者知道为什么它是不可能的。

更新1 :感谢@denisazevedo和@Todd在答案中提出的想法,我找到了一种让它如前所述工作的方法,这里是fiddle。现在,你能看到一些我在这次简短测试中找不到的问题吗? (问另一个问题会更好吗?)

更新2 :普通小提琴无法正常工作,如果评论以c结尾,则不包含该字母(>未显示在输出或),并在IE上向后显示注释。

2 个答案:

答案 0 :(得分:1)

WRONG:

我的建议:尝试使用新的文字编辑器。

你在用什么?记事本?

我更喜欢崇高的文字,但还有其他免费文字编辑器,它们通常都使用 CTRL + / 。甚至codepen.io实现了这一点。只是突出显示和热键!

RIGHT

编辑II:

现在支持多个评论属性

现在将属性作为连字符分隔&#34;语句属性&#34;,用空格替换连字符,并插入包含每个&#34;语句属性&#34;的格式化文本的注释。

codepen:http://codepen.io/presstep/pen/0a1b5a595e8dd3db7e74b84a1dbc1c72

// js
myapp = angular.module("myapp", []);

myapp.directive('c', function() {
    var directive = {
      restrict: 'E',
      compile: function(element) {
        var comments  = [],
            attrs = element[0].attributes;
        for (var i = 0, j = attrs.length; i < j; i++) {
          var f = element[0].attributes[i].name.replace('-', ' ');
          comments.push(document.createComment(f));
        }

        element.replaceWith(comments);
      }
    };

    return directive;
});

然后......

<!-- Original HTML -->
<div ng-app='myapp'>
  <c this-is-a-comment-element and-so-is-this>
</div>

并且神奇地呈现了这个:

<div ng-app='myapp'>
    <!-- this is a comment element -->
    <!-- and so is this -->
</div>

答案 1 :(得分:1)

那么,

我会使用一个好的编辑器的功能,但如果你真的想要一个指令,我想到的最好的是:

.directive('c', function() {  
    return {
        restrict: 'E',
        scope: {
            text: '@t'
        },
        template: '<!-- {{text}} -->'
    };
});

以及如何使用它:

<c t="My comment">

以下是fiddle