<p dir="auto"><strong>I'm submitting a ...</strong>  (check one with "x")</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[x] feature request"><pre class="notranslate"><code class="notranslate">[x] feature request
</code></pre></div>
<p dir="auto"><strong>Current behavior</strong></p>
<p dir="auto">We don't have an SPA. And we can't go full SPA right now. So there are multiple root components placed in the DOM</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;my-app1&gt;&lt;/my-app1&gt;
&lt;my-app2&gt;&lt;/my-app2&gt;"><pre class="notranslate"><span class="pl-kos">&lt;</span><span class="pl-ent">my-app1</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">my-app1</span><span class="pl-kos">&gt;</span>
<span class="pl-kos">&lt;</span><span class="pl-ent">my-app2</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">my-app2</span><span class="pl-kos">&gt;</span></pre></div>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="@NgModule({
    imports: [ BrowserModule ],
    providers: [ MyService ],
})
export class BaseModule {
  ngDoBootstrap(applicationRef: ApplicationRef) {
    const zone = applicationRef.zone;
    platform._injector = applicationRef.injector;

    zone.runOutsideAngular(() =&gt; {
      // run several modules in same zone and with same parent injector
      platform._bootstrapModuleWithZone(AppModule1, [], zone);
      platform._bootstrapModuleWithZone(AppModule2, [], zone);
    });
  }
}

const platform = platformBrowserDynamic();

platform.bootstrapModule(BaseModule);"><pre class="notranslate">@<span class="pl-smi">NgModule</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">imports</span>: <span class="pl-kos">[</span> <span class="pl-smi">BrowserModule</span> <span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-c1">providers</span>: <span class="pl-kos">[</span> <span class="pl-smi">MyService</span> <span class="pl-kos">]</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span>
<span class="pl-k">export</span> <span class="pl-k">class</span> <span class="pl-smi">BaseModule</span> <span class="pl-kos">{</span>
  <span class="pl-en">ngDoBootstrap</span><span class="pl-kos">(</span><span class="pl-s1">applicationRef</span>: <span class="pl-smi">ApplicationRef</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">const</span> <span class="pl-s1">zone</span> <span class="pl-c1">=</span> <span class="pl-s1">applicationRef</span><span class="pl-kos">.</span><span class="pl-c1">zone</span><span class="pl-kos">;</span>
    <span class="pl-s1">platform</span><span class="pl-kos">.</span><span class="pl-c1">_injector</span> <span class="pl-c1">=</span> <span class="pl-s1">applicationRef</span><span class="pl-kos">.</span><span class="pl-c1">injector</span><span class="pl-kos">;</span>

    <span class="pl-s1">zone</span><span class="pl-kos">.</span><span class="pl-en">runOutsideAngular</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span>
      <span class="pl-c">// run several modules in same zone and with same parent injector</span>
      <span class="pl-s1">platform</span><span class="pl-kos">.</span><span class="pl-en">_bootstrapModuleWithZone</span><span class="pl-kos">(</span><span class="pl-smi">AppModule1</span><span class="pl-kos">,</span> <span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-s1">zone</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
      <span class="pl-s1">platform</span><span class="pl-kos">.</span><span class="pl-en">_bootstrapModuleWithZone</span><span class="pl-kos">(</span><span class="pl-smi">AppModule2</span><span class="pl-kos">,</span> <span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-s1">zone</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-kos">}</span>
<span class="pl-kos">}</span>

<span class="pl-k">const</span> <span class="pl-s1">platform</span> <span class="pl-c1">=</span> <span class="pl-en">platformBrowserDynamic</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-s1">platform</span><span class="pl-kos">.</span><span class="pl-en">bootstrapModule</span><span class="pl-kos">(</span><span class="pl-smi">BaseModule</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Expected/desired behavior</strong></p>
<p dir="auto">Have multiple root modules that share one base injector and zone. Don't have to override private properties and call private methods. Maybe a <code class="notranslate">applicationRef.bootstrapChildModule(AppModule1)</code> method.</p>
<p dir="auto"><strong>Reproduction of the problem</strong></p>
<p dir="auto">Plunkr: <a href="http://plnkr.co/edit/80s1jvwrqH3a3YEuxz6D?p=preview" rel="nofollow">http://plnkr.co/edit/80s1jvwrqH3a3YEuxz6D?p=preview</a></p>
<p dir="auto"><strong>What is the motivation / use case for changing the behavior?</strong></p>
<p dir="auto">Not everyone that might want to switch to angular2 can go full single-page-app.</p>
<ul dir="auto">
<li><strong>Angular version:</strong> 2.0.0-rc.5</li>
</ul>
<p dir="auto"><strong>I'm submitting a ...</strong>  (check one with "x")</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[x ] bug report =&gt; search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request =&gt; Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question"><pre class="notranslate"><code class="notranslate">[x ] bug report =&gt; search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request =&gt; Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
</code></pre></div>
<p dir="auto"><strong>Current behavior</strong></p>

<p dir="auto">The Header class in the Http bundle uses the normalize function to normalize the header key, before adding the header key value pair to the header. In chrome the normalize function always transforms the header key to lower case. However, in the header we almost always want the first letter of the header key to be upper case.<br>
<strong>Expected behavior</strong></p>

<p dir="auto">Make sure, that the header key is not modified.<br>
<strong>Reproduction of the problem</strong></p>

<p dir="auto"><strong>What is the motivation / use case for changing the behavior?</strong></p>

<p dir="auto">This problem is especially a problem, when we want to set authorization headers<br>
<strong>Please tell us about your environment:</strong></p>

<p dir="auto">latest Chrome Browser on the latest Mac OS</p>
<ul dir="auto">
<li><strong>Angular version:</strong> 2.0.0-rc.X

Angular 2.0.0 stable</li>
<li><strong>Browser:</strong> [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

This problem only occurs in Chrome (Firefox was also tested)</li>
<li><strong>Language:</strong> [all | TypeScript X.X | ES6/7 | ES5]</li>
<li><strong>Node (for AoT issues):</strong> <code class="notranslate">node --version</code> =</li>
</ul>