Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 脚本标记与控制器_Angular_Controller_Script Tag - Fatal编程技术网

Angular 脚本标记与控制器

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

我在HTML文档顶部的脚本标记中有一段代码运行良好,但一旦我将其移动到angular controller中,它就会停止工作。有人知道这里的代码可能有什么问题吗?我得到的错误是EncodeMageFileAsUrl未定义

<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();

  }