我的app.component.html:

{{bla()}}

我的app.component.ts:

import {Component, OnInit, AfterViewInit} from '@angular/core';

@Component({
    selector: 'idr-app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.scss']
})
export class AppComponent implements AfterViewInit {
    constructor() {}
    ngAfterViewInit() {}

    bla(){
        console.log(77777);
    }
}

我的app.module.ts:

import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
    declarations: [
        AppComponent,
    ],
    imports: [
      BrowserModule,


     BrowserAnimationsModule,
    ],
    providers: [

    ],
    bootstrap: [AppComponent],
})
export class AppModule {
}

在控制台中,我看到这种情况:

app.component.ts:13 77777
app.component.ts:13 77777
core.js:3688 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
app.component.ts:13 77777
app.component.ts:13 77777

如果我在子组件中使用类似{{bla()}}的内容,则77777的显示时间会更多

所以有人知道为什么要重画几次?

#1楼 票数:1

这是由于Angular的默认更改检测策略所致。 如果将策略更改为onPush,您将看到该函数仅执行一次。

这是一个StackBlitz示例: https ://stackblitz.com/edit/angular-dfhfs7 ? file = src%2Fapp%2Fapp.component.ts

如果注释掉更改检测,或将其设置为默认值,则会多次看到控制台语句。 如果将其设置为onPush,则只会看到一次log语句。

这里的文章可能会有所帮助: https : //netbasal.com/a-comprehensive-guide-to-angular-onpush-change-detection-strategy-5bac493074a4

  ask by Olga Matosova translate from so

未解决问题?本站智能推荐:

3回复

角度路由-将URL重定向到组件

我在生产模式下重定向我的应用程序时遇到问题。 当我使用url http://server.com/projectname/dashboard ,服务器响应IIS错误页面404。我必须使用http://server.com/projectname打开应用程序,然后单击链接,例如: 在html
1回复

根据配置文件动态更改Angular2/5应用程序的布局

我正在尝试提出一种灵活的布局方式,其功能将像这样。 页面上元素的默认布局(例如输入,表格等)。 用户可以更改任何这些元素在屏幕上出现的位置。 他可以将某个输入移动到组件内部的其他位置。 然后,我向后端请求并保存他的配置。 每当用户再次登录时,都会通过HTTP请求加载配置,并
1回复

角度中的角度标签-云链接修改

使用此模块: https : //www.npmjs.com/package/angular-tag-cloud-module 我想在link属性上调用一个函数,而不是提供或传递指向外部网站的链接。 例如,用户可以单击一个单词,然后根据他们单击的单词来调用某些功能。 有没有人对此包有任何
2回复

在角度2+中为ngmodel设置动态变量参考

我有一个表的标头,必须根据json {id,name}填充。此id是我在组件中使用的ngModel名称,需要分别映射以用于自定义过滤器。 说, 因此,当我输入第一个输入文本字段的值时,ageSearch将被填充并且必须过滤数据,对于adressSearch来说,现在我想知道如何在ngfo
1回复

如何使用角度2或4或5中的name属性获取dom元素

我有一个模板,里面有多个image(img)标记,所有这些都在foreach循环中进行了迭代,并在打字稿文件中修改了img src属性。 HTML代码: 打字稿文件中的代码,
2回复

Angular:如何访问父组件中的子组件模板变量?

我正在尝试在父app.component.ts访问modalconfirm.component.html #temp ,但始终为null。 modalconfirm.component.html app.component.ts
2回复

将数据从一个组件传递到多个组件的有效方法是什么?

最初,我想到使用主题,但价值不会定期改变。 我只需要在开头将用户ID传递给多个组件。 哪个是最好的通过方式? @输入装饰器或主题? 任何建议将不胜感激!
1回复

将ng-template传递到组件

我面临的问题是,我需要将多个ng-template传递到另一个组件作为模板,例如: app-datatable是我的组件,我需要将这些模板作为模板传递给它。 td-data-table是Teradata共价DataTable组件。 它具有功能,可以使用ng-template模板化每