<p dir="auto">Reporting a bug.</p>
<p dir="auto">Using two way binding - with the <code class="notranslate">ngModel</code> directive - will work on the development - unminified - version of angular2; I expect the <code class="notranslate">ngModel</code> to work as well on the minified angular2, but it crashes and burns.</p>
<p dir="auto"><a href="http://plnkr.co/edit/5eXPbQyiHvMlq0R2fey6?p=preview" rel="nofollow">Working Minimal Example</a><br>
<a href="http://plnkr.co/edit/RiNK3EIB8004wobW9IUD?p=preview" rel="nofollow">Non Working Minimal Example</a></p>
<p dir="auto">The difference between the two plunkers is the usage of <code class="notranslate">.min.js</code> instead of <code class="notranslate">.dev.js</code> for the Angular2 library.</p>
<p dir="auto">Minified version and development versions should both work.</p>
<ul dir="auto">
<li>Angular version: 2.0.0-beta.8</li>
<li>Browser: [all ]</li>
<li>Language: [all]</li>
</ul>
<p dir="auto">The error - as reported by Chrome:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="EXCEPTION: No value accessor for '' in [aSimpleString in AppComponent@2:8]t.logError @ angular2.min.js:17t.logGroup @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 ORIGINAL EXCEPTION: No value accessor for ''t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 ORIGINAL STACKTRACE:t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 Error: No value accessor for ''
    at new t (angular2.min.js:5)
    at a (angular2.min.js:15)
    at Object.i [as setUpControl] (angular2.min.js:15)
    at t.ngOnChanges (angular2.min.js:12)
    at e.ChangeDetector_AppComponent_0.detectChangesInRecordsInternal (viewFactory_AppComponent:45)
    at e.detectChangesInRecords (angular2.min.js:6)
    at e.runDetectChanges (angular2.min.js:6)
    at e._detectChangesInViewChildren (angular2.min.js:6)
    at e.runDetectChanges (angular2.min.js:6)
    at e.detectChanges (angular2.min.js:6)t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 ERROR CONTEXT:t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 e {element: input, componentElement: my-app, context: AppComponent, locals: Object, injector: e…}componentElement: my-appcontext: AppComponentelement: inputexpression: &quot;aSimpleString in AppComponent@2:8&quot;injector: elocals: Object__proto__: et.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262"><pre class="notranslate"><code class="notranslate">EXCEPTION: No value accessor for '' in [aSimpleString in AppComponent@2:8]t.logError @ angular2.min.js:17t.logGroup @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 ORIGINAL EXCEPTION: No value accessor for ''t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 ORIGINAL STACKTRACE:t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 Error: No value accessor for ''
    at new t (angular2.min.js:5)
    at a (angular2.min.js:15)
    at Object.i [as setUpControl] (angular2.min.js:15)
    at t.ngOnChanges (angular2.min.js:12)
    at e.ChangeDetector_AppComponent_0.detectChangesInRecordsInternal (viewFactory_AppComponent:45)
    at e.detectChangesInRecords (angular2.min.js:6)
    at e.runDetectChanges (angular2.min.js:6)
    at e._detectChangesInViewChildren (angular2.min.js:6)
    at e.runDetectChanges (angular2.min.js:6)
    at e.detectChanges (angular2.min.js:6)t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 ERROR CONTEXT:t.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
angular2.min.js:17 e {element: input, componentElement: my-app, context: AppComponent, locals: Object, injector: e…}componentElement: my-appcontext: AppComponentelement: inputexpression: "aSimpleString in AppComponent@2:8"injector: elocals: Object__proto__: et.logError @ angular2.min.js:17e.call @ angular2.min.js:1(anonymous function) @ angular2.min.js:9e._notifyOnError @ angular2.min.js:10o.StringMapWrapper.merge.onError @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1247(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451(anonymous function) @ angular2-polyfills.js:123r @ angular2.min.js:10Zone.run @ angular2-polyfills.js:1243(anonymous function) @ angular2.min.js:10zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
</code></pre></div>
<p dir="auto">When using minified bundles with SystemJS, and a simple snippet like this</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="        &lt;template ngFor #item [ngForOf]=&quot;items&quot; #i=&quot;index&quot;&gt;
          &lt;li&gt;{{i}}&lt;/li&gt;
          &lt;li *ngIf=&quot;i % 2 == 0&quot;&gt;number is even&lt;/li&gt;
        &lt;/template&gt;"><pre class="notranslate"><code class="notranslate">        &lt;template ngFor #item [ngForOf]="items" #i="index"&gt;
          &lt;li&gt;{{i}}&lt;/li&gt;
          &lt;li *ngIf="i % 2 == 0"&gt;number is even&lt;/li&gt;
        &lt;/template&gt;
</code></pre></div>
<p dir="auto">Will throw</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="TypeError: this.directive_0_0.ngDoCheck is not a function"><pre class="notranslate"><code class="notranslate">TypeError: this.directive_0_0.ngDoCheck is not a function
</code></pre></div>
<p dir="auto">This is only reproducible with minified bundles, non-minified work correctly.</p>
<p dir="auto">As an example check this <a href="http://plnkr.co/edit/ZWiQqw3nR8xS1MRrpTry?p=preview" rel="nofollow">plnkr</a> (took it from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="125250401" data-permission-text="Title is private" data-url="https://github.com/angular/angular/issues/6304" data-hovercard-type="issue" data-hovercard-url="/angular/angular/issues/6304/hovercard?comment_id=170200989&amp;comment_type=issue_comment" href="https://github.com/angular/angular/issues/6304#issuecomment-170200989">#6304 (comment)</a>). To reproduce switch between minified and unminified bundles.</p>
<p dir="auto">This is also reproducible with Webpack using this line in the config</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="    plugins : [
        new webpack.optimize.UglifyJsPlugin()
    ],"><pre class="notranslate"><code class="notranslate">    plugins : [
        new webpack.optimize.UglifyJsPlugin()
    ],
</code></pre></div>
<p dir="auto">Am I missing something?</p>