javascript - 使用 jQuery 显示图像

标签 javascript jquery angularjs

当我选择图像时,有时它不会显示,但当我第二次单击时,图像会显示。

jQuery

$('#morefiles').change(function (event) {
  if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test($(this).val())) {
    $ionicPopup.alert({
      title: 'Message',
      template: 'You must select an image file only !'
    });
    $('#morefiles').val('');
  } else {
    var obj = {};
    obj.key = event.target.files[0];
    obj.value = URL.createObjectURL(event.target.files[0]);
    $scope.items.push(obj);
    console.log(JSON.stringify(obj));
    $('#morefiles').val(obj);
  }
});

HTML

<input type="file" multiple="" id="morefiles" accept="image/*" >

如何解决这个问题?当用户选择图像时,我需要当时显示该图像。提前致谢。

最佳答案

好的。我找到你了..添加这一行:

$scope.$apply();

您的代码如下:

$('#morefiles').change(function (event) {
                if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test($(this).val())) {
                    $ionicPopup.alert({
                        title: 'Message',
                        template: 'You must select an image file only !'
                    });
                    $('#morefiles').val('');
                } else {
                    var obj = {};
                    obj.key = event.target.files[0];
                    obj.value = URL.createObjectURL(event.target.files[0]);
                    $scope.items.push(obj);
                    $scope.$apply()
                    console.log(JSON.stringify(obj));

                    $('#morefiles').val(obj);
                }
            });

我也遇到这个问题了。不过是这样解决的。我不知道为什么我需要这样做 $scope.$apply();。我没有足够的时间来挖掘这些东西。如果有人知道原因,欢迎评论我的回答。

关于javascript - 使用 jQuery 显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951659/

相关文章:

jquery - 这是长轮询的当前实现吗?

javascript - 为具有计数效果的元素添加宽度

jquery - 如何设置 jquery 日期选择器的默认大小?

javascript - 如何轻松制作 ionic 标签导航

angularjs - 检测用户何时离开窗口

javascript - 如何在不刷新页面的情况下重新加载 Grocery 网格

javascript - 如何使用 CSS 隐藏 <select> 菜单中的 <option>?

angularjs - angular.js 与 apache kafka 集成

javascript - DataTable 不接受来自数据库的 json

javascript - 使用 jQuery 检索表中的上一行和下一行