AngularJS ng-model仅在点击输入后更新,为什么?

时间:2016-11-12 01:18:32

标签: javascript angularjs

我在角度绑定数据时遇到了奇怪的问题,我有一个输入文件,如果选择了文件,那么他的标题应该显示在下面的输入中。它正在显示,但仅当我点击此输入时。从文件输入表单中选择文件后,应该会自动显示,这里有一些代码:

html的:

<div class="md-button md-raised md-primary raised-button">
<label class="ng-binding" for="image-file">UPLOAD FILE</label>
</div>

<md-input-container>
<div class="raised">
 <input id="image_file_name" type="text" ng-model="vm.filename"></input>
 </div>    
</md-input-container>

<input ng-model="vm.filename" style="display: none" id="image-file"   type="file" 
on-upload="uploadFile"/>  

控制器:

app.controller('imageController', function($scope, fileService) {

$('.intro-for-image').show(2000);

 $scope.uploadFile = function(event){
    $scope.event = event;
  fileService.uploadFile($scope);
};

});

指令:

app.directive('onUpload', function() {
 return {
restrict: 'A',
link: function (scope, element, attrs) {
  var onChangeFunc = scope.$eval(attrs.onUpload);
  element.bind('change', onChangeFunc);
}
};
});

服务:

angular.module('app')
.service('fileService', function ($http,  validationService) {

      this.uploadFile = function ($scope) {
        var event = $scope.event;
        var file = event.target.files[0];
        name = file.name;

        $scope.vm = {
            file: file,
            filename: name,
        };
    }; 
});

我不确定这个指令,在我搜索了我之前的问题后,我发现它在某个地方。

0 个答案:

没有答案