tag:
<grid-filter varible="info.M_id" on-change="searchMember()">
</grid-filter>
directive
app.directive("gridFilter", function () {
return {      
scope: {
varible: "=",
onChange: "&"
},
template: [
'<div class="input-append input-group">',
'<input class="form-control border-right-0" ng-change="onChange();"   no-special-char  class="form-control" ng-model="varible"    />',
'<div class="input-group-append">',
' <span class="input-group-text"><i class="fa-filter fa" aria-hidden="true"></i></span>',
' </div>',
' </div>'].join("")
};
})
Controller
$scope.searchMember = function () {      
    var data = $scope.info;
    Request.GetTabledata("SearchMemberData", data, null, $scope, true);
}
When typing on textbox for example hello. The controller doesn't bind $scope.info.M_id first time on change. Suppose that I  input h , e then $scope.info.M_id binds only h
 
    