Edit in JSFiddle

const mortgageForm = {
	bindings: {
  	applicant: '<',
    onSubmit: '&'
  },
  template: `
  	<div>
    	<form 
      	name="mortgageForm" 
        novalidate 
        ng-model-options="{ allowInvalid: true, debounce: 400 }"
        ng-submit="$ctrl.onSubmit();">
      	
        <div class="wrap">
        	<p>Parent: { allowInvalid: false, debounce: 200 }</p>
          <p>Local: { 'updateOn': 'blur' }</p>
          <input 
            type="text" 
            name="fullname" 
            ng-model="$ctrl.applicant.name" 
            ng-model-options="{ 'updateOn': 'blur' }">
          <pre ng-bind="$ctrl.applicant.name | json"></pre>
        </div>
         
        <div ng-model-options="{ allowInvalid: false, debounce: 200 }">
          <div class="wrap">
          	<p>Parent: { allowInvalid: false, debounce: 200 }</p>
          	<p>Local: [fully inherited parent]</p>
            <input 
              type="email" 
              name="email" 
              ng-model="$ctrl.applicant.email">
            <pre ng-bind="$ctrl.applicant.email | json"></pre>
          </div>
          <div class="wrap">
          	<p>Parent: { allowInvalid: false, debounce: 200 }</p>
          	<p>Local: { 'updateOn': '$inherit', debounce: 0 }</p>
            <input 
              type="text" 
              name="postcode" 
              ng-model="$ctrl.applicant.postcode"
              ng-model-options="{ 'updateOn': '$inherit' }">
            <pre ng-bind="$ctrl.applicant.postcode | json"></pre>
          </div>
        </div>
        
        <button type="submit">
        	Apply for mortgage
        </button>
        
      </form>
    </div>
  `,
  controller: function () {
  	this.$onInit = function () {
    	console.log(this.applicant);
    };
    this.$onChanges = function (changes) {
    	if (changes.applicant) {
      	this.applicant = Object.assign({}, this.applicant);
      }
    };
  	this.onSubmit = function () {};
  }
};

const app = {
	template: `
  	<div>
    	<mortgage-form 
      	applicant="$ctrl.user" 
        on-submit="$ctrl.applyApplicant();">
      </mortgage-form>
    </div>
  `,
  controller: function () {
  	this.$onInit = function () {
    	this.user = {
      	name: 'Todd Motto',
        email: 'todd@toddmotto.com',
        postcode: 'B4D A55'
      };
    };
  }
};

angular
	.module('app', [])
  .component('app', app)
  .component('mortgageForm', mortgageForm)
  .config(function($compileProvider) {
  	//$compileProvider.preAssignBindingsEnabled(true);
  });
  
angular.bootstrap(document.documentElement, ['app']);
<div>
  <app></app>
</div>