javascript - 如何将此函数放入 angularjs 中的指令中

标签 javascript angularjs

这是函数代码,我想将其放入指令中。

function previewFile() {
  var preview = document.querySelector('img');
  var file    = document.querySelector('input[type=file]').files[0];
  var reader  = new FileReader();

  reader.onloadend = function () {
    preview.src = reader.result;
  }
  if (file) {
    reader.readAsDataURL(file);
  } else {
    preview.src = "";
  }
}

这是用 JavaScript 编写的。下面是html代码

<input type="file" onchange="previewFile()"><br>
<img src="" height="200" alt="Image preview...">

我实际上想上传图像并预览它。

最佳答案

 .directive('ngPreviewer', function ($http) {
    return {
        restrict: 'E',
        scope: '=',
        link: function (scope, element, attrs) {
            scope.previewFile = function () {
                var preview = document.querySelector('img');
                var file = document.querySelector('input[type=file]').files[0];
                var reader = new FileReader();

                reader.onloadend = function () {
                    preview.src = reader.result;
                }
                if (file) {
                    reader.readAsDataURL(file);
                } else {
                    preview.src = "";
                }
            };
        },
        template: '<input type="file"  onchange="angular.element(this).scope().previewFile()"><br><img src="" height="200" alt="Image preview...">'
    };
});

然后在您的代码中像这样引用它以使其神奇地出现:

<ng-Previewer></ng-Previewer>

希望这有帮助:)

关于javascript - 如何将此函数放入 angularjs 中的指令中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006408/

相关文章:

javascript - 如何检测给定的单词是否是 JavaScript 中的默认关键字?

javascript - 将毫秒转换为 hh :mm:ss with JS adds 1 hour

javascript - 从 React 向 Node 发送数据时出现 404 错误?

javascript - 应用于所有字段时,Google 图表文字字符串工具提示错误

ajax - Angular JS *非 SPA* SEO

javascript - 在自定义指令中调用服务

c# - 如何使用 AngularJS 构建我的 MVC Web API 应用程序而不产生命名冲突

javascript - 检查子元素,如果子元素存在则隐藏父元素

angularjs - Angular 中的嵌套 foreach 循环

angularjs - 从带有Codeigniter网站URL的angularjs中删除#后,如果重新加载,则找不到404页面…(页面未重新加载的主要错误)?