Invoked whenever an outlet is created and has been assigned to the table.
()
| 965 | |
| 966 | /** Invoked whenever an outlet is created and has been assigned to the table. */ |
| 967 | _outletAssigned(): void { |
| 968 | // Trigger the first render once all outlets have been assigned. We do it this way, as |
| 969 | // opposed to waiting for the next `ngAfterContentChecked`, because we don't know when |
| 970 | // the next change detection will happen. |
| 971 | // Also we can't use queries to resolve the outlets, because they're wrapped in a |
| 972 | // conditional, so we have to rely on them being assigned via DI. |
| 973 | if ( |
| 974 | !this._hasAllOutlets && |
| 975 | this._rowOutlet && |
| 976 | this._headerRowOutlet && |
| 977 | this._footerRowOutlet && |
| 978 | this._noDataRowOutlet |
| 979 | ) { |
| 980 | this._hasAllOutlets = true; |
| 981 | |
| 982 | // In some setups this may fire before `ngAfterContentInit` |
| 983 | // so we need a check here. See #28538. |
| 984 | if (this._canRender()) { |
| 985 | this._render(); |
| 986 | } |
| 987 | } |
| 988 | } |
| 989 | |
| 990 | /** Whether the table has all the information to start rendering. */ |
| 991 | private _canRender(): boolean { |
no test coverage detected