Это должно работать:
var app = angular.module('myApp', []);
app.controller('myctrl', function($scope) {
var vm = this;
vm.mymodel = 'Hello world !';
});
app.directive('customInput', function () {
return {
restrict: 'EA',
scope: {
value: '='
},
template: '<input type="text" ng-model="value" />',
controller: function($scope, $element) {
//Nothing here yet
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myctrl as vm">
<custom-input data-value="vm.mymodel"> </custom-input>
model value : {{vm.mymodel}}
</div>