Cómo agregar funcionalidad ng-model a un componente

Cambio ng angular en el modelo ng pasado a la directiva infantil

Básicamente, quiero poder pasar el modelo ng de una directiva principal a una directiva secundaria. Podría simplemente en un valor enlazado de 2 vías, pero luego no podría usar un ng-change en la directiva padre en el elemento hijo. También podría usar ng-click, pero esto no funcionaría con un cambio sin clic (como un área de texto en lugar de una casilla de verificación). Entonces, me pregunto si hay una manera de permitir que las directivas personalizadas tengan un par ng-model / ng-change similar a cómo pueden hacerlo las entradas, los botones, las áreas de texto y otros elementos html. Quiero evitar el uso de emisiones, complementos, relojes, devoluciones de llamadas, etc. Solo quiero poder hacer [input type = "checkbox" ng-model = "ngModel"] en una directiva personalizada en lugar de input.

Plantilla principal

<child ng-model="x" ng-change="x()"></toggle>

Directiva de padres

$scope.x = function() {console.log('hi')};

Plantilla infantil

<div>
     <input type="checkbox" ng-model="ngModel">
</div>

Directiva de niños ??

$scope.ngModel = $element.controller('ngModel'); 

Mi versión angular es 1.4.8 por cierto.

Gracias :)

Respuestas a la pregunta(2)

Su respuesta a la pregunta