-
Notifications
You must be signed in to change notification settings - Fork 518
Rendering Duplicated on source modification when in debugging Angular Template with Material (2+) #1231
Comments
I've seen the same thing happen in different circumstances, and I narrowed it down to including the BrowserAnimationsModule. As soon as you include this, without making any other changes, you get the duplicate app rendering. |
When looking at boot.browser.ts, I'm not seeing where the app root element is being disposed. Explicitly adding oldRootElem!.remove(); right after the insertBefore fixed this issue for me and HMR is now working again as expected. |
I can confirm that 'BrowserAnimationsModule' is causing the issue. |
I am experiencing the same issue with my Asp.Net Core Angular app. After setting up Material2 and importing BrowserAnimationsModule in my app.module.ts (app.modyle.shared.ts), all components get duplicated as I navigate through the app. In addition to this, the menu triggered within mat-select works fine until one item is selected then it gets frozen. Has anyone solved the problem? |
same problem here: @s3gfaultx I tried your suggestion but getting |
A fix that has worked for me is, in ClientApp/boot.browser.ts exactly as @s3gfaultx recommended. I'm not sure it's a fully correct fix, as I don't understand why the issue only arises when you start to include the BrowserAnimation libraries, but it has fixed the immediate problem in my app. |
It worked for me now as well, not sure what I was doing yesterday. :) Thanks @s3gfaultx |
Im having the same issue with my angular4 app. Not sure where is ClientApp/boot.browser.ts file. Please help!!! |
Any news on fixing that other than commenting out the callback in
it doesn't seem to have any negative impact on the first view but... there must have been a reason to add it in the first place. @JimLynn comment seems to fail in case when the |
Since we changed the template to be based on Angular CLI, it no longer has this issue, so closing. |
@SteveSandersonMS When will the Angular CLI based template be available? Neither Visual Studio 2017 or JetBrains' Rider have it as the default template. They both also start apps at Angular 4.2.5 still. |
I am working on template based angular project replacing bootstrap angular material 2: https://github.com/angular/material2.
For some reasons it seems that whenever I am modifying the content of the AppClient folder the the re-generation duplicate content with the previous render stacked below the new one.

I pushed a sample solution on a public repository, here: https://github.com/ehouarn-perret/EhouarnPerret.CSharp.AngularMaterial2
Screenshot of the issue: https://github.com/ehouarn-perret/EhouarnPerret.CSharp.AngularMaterial2/blob/master/Duplicated-rendering-issue-screenshot.png
Here are also below a short summary of the changes (Note 1) I brought to my solution in order to make it "work"(see Note 2) with material 2
In
packages.json
dependencies
section:"@angular/material": "^2.0.0-beta.8",
"@angular/animations": "^4.2.5",
"@angular/cdk": "^2.0.0-beta.8",
"classlist.js": "^1.1.20150312",
"core-js": "^2.5.0",
"hammerjs": "^2.0.8",
"intl": "^1.2.5",
"web-animations-js": "^2.3.1",
"bootstrap": "3.3.7",
devDependencies
section:"@types/angular-material": "^1.1.54",
"@types/hammerjs": "^2.0.35",
In
tsconfig.json
:"types": [ "webpack-env" ]
with"types": [ "webpack-env", "hammerjs" ]
In
webpack.config.js
,rules
:{ test: /\.ts$/, include: /ClientApp/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack' },
with{ test: /\.ts$/, use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack' },
In
webpack.config.vendor.js
,nonTreeShakableModules
section:'@angular/material',
'@angular/material/prebuilt-themes/deeppurple-amber.css',
'@angular/cdk',
'web-animations-js',
'bootstrap',
In
ClientApp\app\app.module.shared.ts
:import { MaterialModule } from "@angular/material";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import "hammerjs";
@NgModule
,imports
:MaterialModule,
BrowserAnimationsModule,
Add
polyfills.ts
in theClientApp
folder based on https://github.com/addyosmani/todomvc-angular-4/blob/master/src/polyfills.ts (modified though to support IE...)In
ClientApp\boot.browser.ts
:import './polyfills';
import 'bootstrap';
In
Views\Home\Index.cshtml
:asp-prerender-module
withasp-ng2-prerender-module
In
Views\Shared\_Layout.cshtml
:<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
Any idea about why this is happening?
The text was updated successfully, but these errors were encountered: