当我选择图像时,有时它不会显示,但是当我再次点击时,会显示图像。
的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/*" >
如何解决这个问题?当用户选择图像时,我需要在那时显示图像。提前谢谢。
答案 0 :(得分:1)
好。我找到了你..添加这一行:
$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();
。我没有足够的时间去挖掘这些东西。如果有人知道它的原因,欢迎你评论我的答案。
答案 1 :(得分:0)
试试这个:
$(function() {
$('#morefiles').on('change', gotPic);
});
function gotPic(event) {
if (event.target.files.length) {
for (var i = 0; i < event.target.files.length; i++) {
if (event.target.files[i].type.indexOf('image/') == 0) {
var src = URL.createObjectURL(event.target.files[i])
$('#preview').append('<img src = ' + src + '><br>');
}
}
}
}
&#13;
img {
width: 300px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" multiple="" accept="image/*;capture=camera" id="morefiles">
<br>
<div id="preview"></div>
&#13;