Angularjs 无法在fileReader.onload函数中获取$scope变量
我用的是这样的东西Angularjs 无法在fileReader.onload函数中获取$scope变量,angularjs,filereader,Angularjs,Filereader,我用的是这样的东西 app.controller('techiesClub', function($scope, $http) { $scope.firstName = "John"; $scope.lastName = "Doe"; $scope.asdf = "ankur"; $scope.uploadImage = function () { alert($scope.asdf); ////////////WORKS WELL
app.controller('techiesClub', function($scope, $http) {
$scope.firstName = "John";
$scope.lastName = "Doe";
$scope.asdf = "ankur";
$scope.uploadImage = function () {
alert($scope.asdf); ////////////WORKS WELL
var filesSelected = document.getElementById("upload").files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent, ss) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
$scope.asdf = srcData; //////////////////NOT WORKING
}
debugger;
fileReader.readAsDataURL(fileToLoad, $scope);
}
}
});
app.controller('techiesClub',函数($scope,$http){
$scope.firstName=“John”;
$scope.lastName=“Doe”;
$scope.asdf=“ankur”;
$scope.uploadImage=函数(){
警报($scope.asdf);//效果良好
var fileselected=document.getElementById(“上载”).files;
如果(fileselected.length>0){
var fileToLoad=fileselected[0];
var fileReader=newfilereader();
fileReader.onload=函数(fileLoadedEvent,ss){
var srcData=fileloadevent.target.result;//Ankur
我们可以用这种方式重写html
<input type="file" id="upload" name="pic" class="form-control" onchange="angular.element(this).scope().uploadImage(this);">
这里是JS代码段..我正在尝试Blob版本
$scope.uploadImage = function ($event) {
alert($scope.asdf); ////////////WORKS WELL
var filesSelected = $event.files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
var _ULR = window.URL || window.webkitURL;
var img = new Image();
img.onload = function() {
var srcData = this.src; // <--- data: blob
$scope.asdf = srcData; //////////////////NOT WORKING
};debugger;
img.src =_ULR.createObjectURL(fileToLoad);
}
}
$scope.uploadImage=函数($event){
警报($scope.asdf);//效果良好
var fileselected=$event.files;
如果(fileselected.length>0){
var fileToLoad=fileselected[0];
var _ULR=window.URL | | window.webkitURL;
var img=新图像();
img.onload=函数(){
var srcData=this.src;//我认为您缺少解决方案中的关键点。我只是更改了您访问base64内容的方式。它应该可以工作
$scope.uploadImage = function () {
alert($scope.asdf); ////////////WORKS WELL
var filesSelected = document.getElementById("upload").files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileReader.result; // <--- data: base64
$scope.asdf = srcData; //////////////////NOT WORKING
}
debugger;
fileReader.readAsDataURL(fileToLoad);
}
}
$scope.uploadImage=函数(){
警报($scope.asdf);//效果良好
var fileselected=document.getElementById(“上载”).files;
如果(fileselected.length>0){
var fileToLoad=fileselected[0];
var fileReader=newfilereader();
fileReader.onload=函数(fileLoadedEvent){
var srcData=fileReader.result//
$scope.uploadImage = function () {
alert($scope.asdf); ////////////WORKS WELL
var filesSelected = document.getElementById("upload").files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileReader.result; // <--- data: base64
$scope.asdf = srcData; //////////////////NOT WORKING
}
debugger;
fileReader.readAsDataURL(fileToLoad);
}
}