如何使用$setViewValue(file)将文件对象设置为ngModel



我在文件选择期间更新ngModel,当我尝试设置字符串值时,它正在正确更新。

scope : 'A',
require : 'ngModel',
link : function(scope, el, attr, ngModel) {
        el.bind('change', function(e) {
            scope.file = (e.srcElement || e.target).files[0];
            scope.ngModel.$setViewValue(scope.file);
            scope.ngModel.$render();
        });
}

在保存页面时,我将把整个模型数据发送到服务器。此值正在变得未定义。

无法实现这一点,有什么解决办法吗

我确实在更改函数中添加了一个读取器,用于读取文件输入框的内容。这可能不是最优雅的解决方案,但它对我有效

el.bind('change', function (e) {
    if (e.target.files && e.target.files[0]) {
        var reader = new FileReader();
        reader.onload = function (ev) {
            // here is your data, add it to your model object
            scope.ngModel.filesrc = ev.target.result;
        };
        reader.readAsDataURL(e.target.files[0]);
    }
});

相关内容

最新更新