1+ using System ;
12using System . Threading . Tasks ;
23using Microsoft . AspNet . Razor . Runtime . TagHelpers ;
34using Microsoft . AspNet . Http ;
4- using Microsoft . AspNet . NodeServices ;
55using Microsoft . AspNet . Http . Extensions ;
66
77namespace Microsoft . AspNet . NodeServices . Angular
@@ -10,15 +10,16 @@ namespace Microsoft.AspNet.NodeServices.Angular
1010 public class AngularRunAtServerTagHelper : TagHelper
1111 {
1212 static StringAsTempFile nodeScript ;
13+ static INodeServices fallbackNodeServices ; // Used only if no INodeServices was registered with DI
1314
1415 static AngularRunAtServerTagHelper ( ) {
1516 // Consider populating this lazily
1617 var script = EmbeddedResourceReader . Read ( typeof ( AngularRunAtServerTagHelper ) , "/Content/Node/angular-rendering.js" ) ;
1718 nodeScript = new StringAsTempFile ( script ) ; // Will be cleaned up on process exit
1819 }
1920
20- const string PrerenderModuleAttributeName = "aspnet -ng2-prerender-module" ;
21- const string PrerenderExportAttributeName = "aspnet -ng2-prerender-export" ;
21+ const string PrerenderModuleAttributeName = "asp -ng2-prerender-module" ;
22+ const string PrerenderExportAttributeName = "asp -ng2-prerender-export" ;
2223
2324 [ HtmlAttributeName ( PrerenderModuleAttributeName ) ]
2425 public string ModuleName { get ; set ; }
@@ -29,10 +30,16 @@ static AngularRunAtServerTagHelper() {
2930 private IHttpContextAccessor contextAccessor ;
3031 private INodeServices nodeServices ;
3132
32- public AngularRunAtServerTagHelper ( INodeServices nodeServices , IHttpContextAccessor contextAccessor )
33+ public AngularRunAtServerTagHelper ( IServiceProvider nodeServices , IHttpContextAccessor contextAccessor )
3334 {
3435 this . contextAccessor = contextAccessor ;
35- this . nodeServices = nodeServices ;
36+ this . nodeServices = ( INodeServices ) nodeServices . GetService ( typeof ( INodeServices ) ) ?? fallbackNodeServices ;
37+
38+ // Consider removing the following. Having it means you can get away with not putting app.AddNodeServices()
39+ // in your startup file, but then again it might be confusing that you don't need to.
40+ if ( this . nodeServices == null ) {
41+ this . nodeServices = fallbackNodeServices = Configuration . CreateNodeServices ( NodeHostingModel . Http ) ;
42+ }
3643 }
3744
3845 public override async Task ProcessAsync ( TagHelperContext context , TagHelperOutput output )
0 commit comments