Angular 1.5 Component Two Way Binding Not Working
<p>I have an Angular 1.5.3 component that appears to not update the values for a two way binding. My controller changes the values which are passed to the component.</p>

<p>The component appears to read the default values when the controller is initialized but thereafter acts as if it is one way bound. Any future changes to the bound values are not read in the component.</p>

<p>I converted this from a similar functioning directive and the two way binding worked just fine. Is there an on change event, or something similar, I’m missing for components? Do I need to add specific logic to the component controller so the component template can read the bound values?</p>

<p>Menu template that implements the component:</p>

<pre><code>&lt;div data-ng-controller="MenuCtrl as ctrl"&gt;
    &lt;!-- below shows ctrl values updating when controller changes them --&gt;
    &lt;pre&gt;{{ctrl.menu}}&lt;/pre&gt;
    &lt;pre&gt;{{ctrl.settings}}&lt;/pre&gt;
    &lt;!-- changes not reflected in component --&gt;
    &lt;my-sub-menu menu="ctrl.menu" settings="ctrl.settings"&gt;&lt;/my-sub-menu&gt;
&lt;/div&gt;
</code></pre>

<p>Sub menu component:</p>

<pre><code>(function () {
'use strict';
angular
    .module('myApp.components')
    .component('mySubMenu', {
        bindings: {
            menu: '=',
            settings: '='
        },
        templateUrl: 'subMenu.component.html',
        controller: function () {
            // implementation that reads menu and settings
        }
    });
})();
</code></pre>

<p>Simplified sub menu component template:</p>

<pre><code>&lt;ul&gt;
    &lt;li ng-show="settings.menu1"&gt;&lt;a href="/"&gt;Menu 1&lt;/a&gt;&lt;/li&gt;
    &lt;li ng-show="settings.menu2"&gt;&lt;a href="/"&gt;Menu 2&lt;/a&gt;&lt;/li&gt;
    &lt;li ng-show="settings.menu3"&gt;&lt;a href="/"&gt;Menu 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- changes to bound values not reflected in component template --&gt;
&lt;pre&gt;{{menu}}&lt;/pre&gt;
&lt;pre&gt;{{settings}}&lt;/pre&gt;
</code></pre>