Angular ng-change on ng-model passed into child directive
Basically, I want to be able to pass in ng-model from a parent directive to a child directive. I could just in a 2-way binded value, but then I wouldn't be able to use a ng-change in the parent directive on the child element. I could also use ng-click, but this wouldn't work with a non-clicking change (such as a text area instead of a checkbox). So I'm wondering if there's a way to allow a custom directives to have a ng-model/ng-change pair similar to how inputs, buttons, text areas and other html elements can. I want to avoid using emits, ons, watches, passing callbacks, etc. I just want to be able to do [input type="checkbox" ng-model="ngModel"] on a custom directive instead of input.
Parent Template
<child ng-model="x" ng-change="x()"></toggle>
Parent Directive
$scope.x = function() {console.log('hi')};
Child Template
<div>
<input type="checkbox" ng-model="ngModel">
</div>
Child Directive ??
$scope.ngModel = $element.controller('ngModel');
My angular version is 1.4.8 btw.
Thanks :)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…