2016-12-26 3 views
1

я создаю веб-приложение, в котором я создал директиву 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) { 

      }) 
     } 

как я могу передать значение

ответ

2

Используйте scope: false в DDO

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

имя filename же как в месте. example

ИЛИ

Использование isolated scope:

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

см isolated example Надеюсь, что это поможет.

+0

, где мне нужно использовать изолированный объем :? В моем контроллере? –

Смежные вопросы