angularjs 如何向Angular模板添加注解(针对开发人员,而不是在输出HTML中)?

gtlvzcf8  于 2023-06-04  发布在  Angular
关注(0)|答案(4)|浏览(472)

我习惯了更流行的“胡子”风格模板,我可以在那里为我的同事添加评论:

{# The following code looks a bit odd, but here's why... #}

这些注解显然不会出现在输出中--所以用户看不到它们。如何在Angular中做类似的事情?

vc9ivgsu

vc9ivgsu1#

Angular没有内置的模板注解支持。但是,您可以创建一个注解指令来支持它,如下所示。

app.directive('templateComment', function () {
    return {
        restrict: 'E',
        compile: function (tElement, attrs) {
            tElement.remove();
        }
    };
});

标记则为:

<template-comment>Put your comment here.</template-comment>

或者,您可以使用标准的html注解,然后在部署之前将它们从生产代码中剥离出来。
如果您想支持块注解,请考虑这个grunt任务-https://github.com/philipwalton/grunt-strip-code指定一个开始注解和一个结束注解,您的注解块将从生产代码中剥离出来,假设您将此任务添加到部署目标。如果您没有使用Grunt,请将其用作构建过程的模型。....

e5nqia27

e5nqia272#

我意识到这个问题已经被问了7年多了,但它是“Angular 模板评论”的顶级搜索结果之一,所以我们开始吧...
由于似乎仍然没有模板语法支持(非html)注解,我发现最简单的方法是在嵌入式表达式中滥用对一行js注解的支持。像这样:

{{ '' // my comment }}

空字符串字面量-这使得它比它已经更丑陋-是必要的,因为没有它,Angular 编译器会在TypeError中barfs 'ERROR:无法读取未定义'的属性'visit',至少在我使用的9.0.0版本中是这样。
2021年的Yay Web开发!

z4iuyo4d

z4iuyo4d3#

你可以使用普通的注解语法,而不使用特殊的符号,比如<!-- Order verification, and authorization -->,然后你可以缩小html(grunt + htmlmin)

htmlmin: {
      dist: {
        options: {
          collapseWhitespace: true,
          collapseBooleanAttributes: true,
          removeCommentsFromCDATA: true,
          removeOptionalTags: true,
          removeComments: true,
          ignoreCustomComments: [ /[<>\:\[\]\#]+/ ]

        },
        files: [{
          expand: true,
          cwd: '<%= yeoman.dist %>',
          src: ['*.html', 'views/**/*.html'],
          dest: '<%= yeoman.dist %>'
        }]
      }
    },
xriantvc

xriantvc4#

我最近也有同样的需求,于是就这样做了:

<div ng-if="false">
  <!-- Your comment -->
</div>

它只生成以下输出:

<!-- ngIf: false -->

相关问题