您需要創建在DOM路徑字符串來表示您瀏覽的文件,然後將其添加爲背景圖片網址。我通過修改你的代碼來完成它的工作。
<body>
<form action="" id="contactproForm" method="post" ng-app="myApp" ng-controller="myCtrl" enctype="multipart/form-data">
<label for="file">Attachment</label>
<div class="input-box">
<input type="file" id="file" class="input-text" ngf-change="onChange(picFile)" ngf-select ng-model="picFile" name="attachement" accept="image/png, image/jpeg, image/jpg, application/msword, application/vnd.ms-excel, application/pdf " />
</div>
<div id="image"class="image" style="width:200px;height:200px;background-image:url('');"></div> <!-- div with id="image"-->
</form>
<script>
var app = angular.module('myApp', ['ngFileUpload']);
app.controller('myCtrl', ['$scope', '$http', '$timeout', '$compile', 'Upload',
function($scope, $http, $timeout, $compile, Upload) {
$scope.onChange = function(files) {
if (files[0] == undefined) return;
if($scope.isImage(files[0].name.split(".").pop())){ // checking if image
var path = URL.createObjectURL(files[0]); // creating a path for file
document.getElementById('image').style.backgroundImage = "url(" + path + ")"; // setting it as background image of div
}else{
alert("not Image");
}
}
$scope.isImage = function(ext) {
if (ext) {
return ext == "jpg" || ext == "jpeg" || ext == "gif" || ext == "png"
}
}
}
]);
</script>
</body>
我已添加對所作更改的評論。
這可以通過將代碼封裝到自定義指令中進行改進 –
另外,由於OP正在使用ng-file-upload,您可以使用ngf-background指令嗎? https://github.com/danialfarid/ng-file-upload –
有一個問題@nijeesh。 background-image不適用於pdf等。 –