【问题标题】:Commenting (out) code in Angular2 TypeScript在 Angular2 TypeScript 中注释(出)代码
【发布时间】:2016-07-23 15:31:49
【问题描述】:

我有以下 Angular2 TypeScript 代码,其中一部分按照 Javascript 约定被注释掉:

@Component({
    selector: 'my-app',
    template:
    `<h1>{{title}}</h1>
    <h2>{{lene.name}}</h2>
    <div><label>id: </label>{{lene.id}}</div>
    /*<div>
       <label>name: </label>
       <input [(ngModel)]="lene.name" placeholder="name">
    </div>*/`
    <div><label>description: </label>{{lene.description}}</div>
})

但是,一旦 TypeScript 编译为 Javascript,我的 Web 浏览器就会得到以下输出:

我搜索了 API 文档,但找不到指定此非常基本功能的语法的条目。有人知道你是如何在 TypeScript 中做多行 cmets 的吗?

【问题讨论】:

    标签: javascript angularjs angular comments


    【解决方案1】:

    /* */ 是打字稿注释分隔符

    它们在字符串文字中不起作用。

    您可以使用 HTML 注释语法代替 &lt;!-- --&gt;

    @Component({
        selector: 'my-app',
        template:
        `<h1>{{title}}</h1>
        <h2>{{lene.name}}</h2>
        <div><label>id: </label>{{lene.id}}</div>
        <!-- <div>
           <label>name: </label>
           <input [(ngModel)]="lene.name" placeholder="name">
        </div> -->'
        <div><label>description: </label>{{lene.description}}</div>
    })
    

    以这种方式注释掉的 HTML 仍会添加到 DOM,但仅作为注释。

    【讨论】:

    • 基本上,因为模板部分被解析为 HTML 而不是 Javascript,所以我应该对 cme​​ts 使用 HTML 语法,对吧?还是比这更复杂?无论哪种方式,解决方案都有效:)。
    • 从 TypeScript 的角度来看,`&lt;h1 ... /div&gt;` 是一个字符串。在字符串中的 cmets(实际上几乎除了字符串插值之外的所有内容)都会被忽略。当使用 HTML 注释语法时,字符串被转发到浏览器(包括&lt;!-- --&gt;),然后浏览器将这部分字符串解释为注释。
    • 关于评论分隔的有趣信息。您是否知道示例或 API 文档参考,以便我查看?
    • TypeScript 注释语法基本上是 ES5 comment syntax 并添加了一些附加内容,例如“源文件依赖关系”stackoverflow.com/questions/23072286/…。反引号在这里解释developer.mozilla.org/de/docs/Web/JavaScript/Reference/…
    • @GünterZöchbauer 我正在处理一个非常简单的 Angular2 项目,并且在我的模板中有一个 HTML 注释,并且该注释没有被添加到 DOM 中。代码运行,但输出中没有注释。
    【解决方案2】:

    如果您在模板中,请使用 HTML 注释 &lt;!-- ... --&gt;:

    @Component({
      selector: 'my-app',
      template: `
        <h1>{{title}}</h1>
        <h2>{{lene.name}}</h2>
        <div><label>id: </label>{{lene.id}}</div>
        <!-- div>
          <label>name: </label>
          <input [(ngModel)]="lene.name" placeholder="name">
        </div-->
        <div><label>description: </label>{{lene.description}}</div>
      `
    })
    

    【讨论】:

      【解决方案3】:

      但是,它似乎不起作用,因为它只隐藏了 HTML,同时仍在尝试执行注释部分中的打字稿代码。

      【讨论】:

        猜你喜欢
        • 2012-01-05
        • 2010-11-04
        • 2011-10-02
        • 2011-04-14
        • 2012-02-05
        • 2023-03-14
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多