Angular 脚本标记与控制器
我在HTML文档顶部的脚本标记中有一段代码运行良好,但一旦我将其移动到angular controller中,它就会停止工作。有人知道这里的代码可能有什么问题吗?我得到的错误是EncodeMageFileAsUrl未定义Angular 脚本标记与控制器,angular,controller,script-tag,Angular,Controller,Script Tag,我在HTML文档顶部的脚本标记中有一段代码运行良好,但一旦我将其移动到angular controller中,它就会停止工作。有人知道这里的代码可能有什么问题吗?我得到的错误是EncodeMageFileAsUrl未定义 <script type='text/javascript'> function encodeImageFileAsURL() { let filesSelected = document.getElementById("inputFileToLoad").fi
<script type='text/javascript'>
function encodeImageFileAsURL() {
let filesSelected = document.getElementById("inputFileToLoad").files;
if (filesSelected.length > 0) {
let fileToLoad = filesSelected[0];
let fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
let srcData = fileLoadedEvent.target.result; // <--- data: base64
let newImage = document.createElement('img');
newImage.src = srcData;
document.getElementById("imgTest").innerHTML = newImage.outerHTML;
}
fileReader.readAsDataURL(fileToLoad);
}
}
JSIDLE链接:
您可以像这样更新html
<input id="inputFileToLoad" type="file" ng-model="fileToLoad" onchange="angular.element(this).scope().select(this)">
你能在html文件中定义ng应用程序吗?控制器工作正常,只是没有这个功能。控制器中还有250行其他JavaScript,它们的工作方式很奇怪。你能创建一个plunker吗?请发布所有相关代码。例如,我们无法看到您的整个控制器,因此我们不知道您是否正确注入了$scope。此外,您尚未发布html,因此我们无法判断您是否正确调用了$scope.encodeImageFileAsURL。这将帮助你得到一个更好的答案。另外,您的控制台中是否有任何错误?如果您将此代码粘贴到codepen.io中,它将运行。只需将样式标记复制并粘贴到html文档中,然后添加:awesome我将尝试实现它。这会产生一个新的错误,但它似乎在正确的轨道上。未捕获类型错误:angular.element(…).scope(…).select不是HTMLInputElement.onchange(VM119648媒体:1)的函数onchange=“EncodeMageFileAsUrl(this)”或try ng change=“EncodeMageFileAsUrl(this)”
<input id="inputFileToLoad" type="file" ng-model="fileToLoad" onchange="angular.element(this).scope().select(this)">
$scope.encodeImageFileAsURL = function(e){
$scope.currentFile = e.files[0];
var reader = new FileReader();
reader.onload = function(event) {
let srcData = event.target.result
let newImage = document.createElement('img');
newImage.src = srcData;
document.getElementById('imgTest').innerHTML = newImage.outerHTML;
}
reader.readAsDataURL(e.files[0]);
//reader.readAsDataURL(element.files[0]);
//console.log($scope.file)
//var reader = new FileReader();
}