将值从指令传递给控制器

passing values to controller from directive

我正在创建一个 Web 应用程序,我在其中为 input type file

创建了一个指令
app.directive('customFileInput', [function () {
        return {
            link: function (scope, element, attrs) {
                element.on('change', function (evt) {
                    var files = evt.target.files;
                    scope.filename = files[0].name
                    console.log(scope.filename);
                });
            }
        }
    }]);

这是我从

获取文件名的指令
<input id="file" type="file" ng-model="mdfile" ng-change="filepath()" class="form-control"  custom-file-input />

这个输入框

现在在我的控制器中,我想传递我从指令中获得的文件名

$scope.savefunction = function () {
            var f = document.getElementById('file').files[0],
                r = new FileReader();
            r.onloadend = function (e) {
                $scope.data = e.target.result;
            }
            r.readAsDataURL(f);

            $http.get('/employeeregistration.asmx/sav', {
                params: {
                    data: $scope.data,
                    //i want to pass the value here
                }
            }).then(function (response) {

            })
        }

我如何传递值

DDO

中使用scope: false
return { 
  restrict: “EA”, 
  scope: false, 
  link: function(scope, elem, attr){ 
   // write code here. 
  } 
} 

name filename 两处相同。 example

使用isolated scope:

return {
    restrict: "EA",
    scope: {
        filename: "="
    },

isolated example 希望这会有所帮助。