繁体   English   中英

angular 2 模板使用console.log

[英]angular 2 template use console.log

我想在内联模板中使用console.log,但找不到任何方向。

@Component({
  selector:"main",
  providers: [ItemService],
  template:`
    <ul>
     <li *ngFor="let item of items">
      {{console.log(item)}} <----- ??? 
      <p>{{item.name}}</p>
     </li>
    </ul>

  `
})
export class HomeComponent {
  private items: Array<ItemModel>;

  constructor() {}
}

你不能访问全局,静态,......

您只能访问该视图所属组件的属性。

你可以添加一个

log(val) { console.log(val); }

你的组件,并使用它

{{log(item)}} 

但要做好准备,以便经常记录(每次更改检测都会运行)。

对于调试,我更喜欢

 {{item | json}} 

更好的方法:

这样您就可以访问模板端的所有控制台属性


组件方面:

export class AppComponent  {
  console = console;
}

模板面:

{{ console.log('----------------> Logging') }}
{{ console.warn('----------------> Warning') }}
{{ console.error('----------------> error') }}

工作演示

一种简单的调试方法是为此创建一个管道:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'log'
})
export class LogPipe implements PipeTransform {
    transform(value: any, args?: any): any {
        console.log(value);
        return null;
    }
}

然后你只需要在模板中写这个:

{{ variable | log }}

这是一个简单且有效的解决方案,如果您想在控制台中打印每个项目,而不在 .ts 文件中创建任何其他方法

  1. 添加 in.ts 文件控制台
export class AppComponent  {
    console = console;
}
  1. 添加.html文件c onsole.log
<li *ngFor="let item of items">
    {{ console.log('-', item) }} 
    <p>{{item.name}}</p>
</li>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM