Angular 1.5 component demo

by maciejgurban

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script>
<div ng-app="demoApp" ng-controller="MainController as mainCtrl">
  <foo-rock ng-model="obj.text"></foo-rock>
</div>

JavaScript

angular.module('demoApp', [])
	.controller('MainController', function MainController() {
  	this.obj = { text: 'default' }
  })
  .component('foo', {
  	bindings: {
      'bar': '<',
    },
    controller: function() {
			this.$onChanges = arg => {
        console.log('change detected', arg)
      };
    }
  })
  .component("fooRock", {
    template: '<input type="text" />',
    require: {
      ngModelCtrl: "ngModel"
    },
    bindings: {
      ngModel: "<"
    },
    controller: function() {
      this.$onInit = () => {
        console.log(this.ngModelCtrl);
      }
    }
  });