日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

深究angularJS——(上传)FileUploader中文翻译

發布時間:2025/3/20 javascript 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深究angularJS——(上传)FileUploader中文翻译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

翻譯 : 張春玲
博客:http://blog.csdn.net/zcl_love_wx
轉載請注明出處

1.相關網址

官網:http://www.bootcdn.cn/angular-file-upload/readme/
API : https://github.com/nervgh/angular-file-upload/wiki/Module-API
插件
示例:http://nervgh.github.io/pages/angular-file-upload/examples/simple/

2. 官網API翻譯

2.1 指令

2.1.1 nv-file-drop

<!-- 簡單的使用 --> <element nv-file-drop uploader="{FileUploader}"></element> <!-- 有更多配置的情形 --> <element nv-file-drop uploader="{FileUploader}" options="{Object}" filters="{String}"></element>

uploader 屬性必須是FileUploader的實例
options 屬性可以是FileItem選項,也可以是自定義屬性
filters 屬性可以是用逗號隔開的過濾器名字組成的字符串,如:’filterName1, filterName2’,這些過濾器的名字必須事先定義好:

uploader.filters.push({name:'filterName1', fn:function() {/* your code here */}}); uploader.filters.push({name:'filterName2', fn:function() {/* your code here */}});

2.1.2 nv-file-select

<!-- 簡單的使用 --> <input type="file" nv-file-select uploader="{FileUploader}"/> <!-- 有更多配置的情形 --> <input type="file" nv-file-select uploader="{FileUploader}" options="{Object}" filters="{String}"/>

2.1.3 nv-file-over

<!-- 簡單的使用 --> <element nv-file-over uploader="{FileUploader}"></element> <!-- 有更多配置的情形 --> <element nv-file-over uploader="{FileUploader}" over-class="{String}"></element>

2.2 服務

FileUploader

2.3 內容講解

2.3.1 FileUploader


屬性

名稱類型說明
urlString上傳文件的服務器路徑地址
aliasString接收文件的字段名,默認為”file”
queueArray要被上傳的文件組成的隊列(項目),可理解成集合
progressNumber隊列上傳的百分比,該屬性只讀
headersObject與文件一起發送的頭文件,只適合支持html5的瀏覽器
formDataArray與文件一起發送的數據
filtersArray在將其添加到隊列之前,將過濾器應用于文件。當過濾器返回true時,才該文件將被添加到隊列中
autoUploadBoolean將文件添加到隊列后自動上傳
methodStringrequest請求方法。默認post。只適合支持HTML5的瀏覽器。
removeAfterUploadBoolean從隊列上傳后刪除文件
isHTML5Boolean如果是支持HTML5瀏覽器上傳為true,只讀。
isUploadingBoolean如果上傳正在進行中為true,只讀。
queueLimitNumber最多上傳的文件個數
withCredentialsBoolean使其跨源資源共享。只適合支持HTML5的瀏覽器。

方法

方法名傳參與返回說明
addToQueuefunction(files[, options[, filters]]) {}將項目添加到隊列中,當文件是一個文件列表文件或單個文件或htmlinputelement,options是Object類型,過濾器是字符串。
removeFromQueuefunction(value) {}從隊列中刪除一個文件項目,value是文件對象或是該文件在隊列里的下標(序列)。
clearQueuefunction() {}從隊列中移除所有元素。
uploadItemfunction(value) {}上傳隊列中的一個文件,value既可以是文件對象,也可是該文件在隊列中的下標。
cancelItemfunction(value) {}取消上傳隊列中的一個文件,value既可以是文件對象,也可是該文件在隊列中的下標。
uploadAllfunction() {}上傳所有正在排隊的待定項
cancelAllfunction() {}取消當前所有的上傳
destroyfunction() {}破壞一個上傳。
isFilefunction(value) {return {Boolean};}如果是文件對象就返回true
isFileLikeObjectfunction(value) {return {Boolean};}如果是FileLikeObject就返回。這是個啥?沒用過。
getIndexOfItemfunction({FileItem}) {return {Number};}返回文件對象在隊列里的下標。
getReadyItemsfunction() {return {Array.<FileItems>};}返回準備好上傳的所有文件對象
getNotUploadedItemsfunction() {return {Array.<FileItems>};}返回隊列中所有等待上傳的文件對象組成的數組。

回調

方法名傳參與返回說明
onAfterAddingFilefunction(item) {}向隊列中添加一個單獨的文件后觸發
onWhenAddingFileFailedfunction(item, filter, options) {}添加一個文件失敗后觸發
onAfterAddingAllfunction(addedItems) {}在所有被拖拽或被選中的文件添加到隊列后觸發。
onBeforeUploadItemfunction(item) {}在上傳一個文件對象之前觸發。
onProgressItemfunction(item, progress) {}On file upload progress.
onSuccessItemfunction(item, response, status, headers) {}一個文件上傳成功后觸發
onErrorItemfunction(item, response, status, headers) {}上傳出錯時觸發
onCancelItemfunction(item, response, status, headers) {}取消上傳時觸發
onCompleteItemfunction(item, response, status, headers) {}在文件上傳完成時觸發(獨立操作成功)
onProgressAllfunction(progress) {}關于上傳隊列的進展
onCompleteAllfunction() {}上傳一個完整的隊列時加載所有的文件,或上傳一個單獨的文件時加載該文件時觸發。

2.3.2 FileItem


屬性

名稱類型說明
urlString上傳該文件的服務器路徑地址
aliasString接收該文件的字段名,默認為”file”
headersObject與該文件一起發送的頭文件,只適合支持html5的瀏覽器
formDataArray與該文件一起發送的數據
methodStringrequest請求方法。默認post。只適合支持HTML5的瀏覽器。
withCredentialsBoolean使其跨源資源共享。只適合支持HTML5的瀏覽器。
removeAfterUploadBoolean從隊列上傳后刪除該文件
indexNumber該文件的上傳序列。只讀。
progressNumber文件上傳的百分比,該屬性只讀
isReadyBoolean文件是否做準備好上傳,只讀。
isUploadingBoolean如果該文件正在上傳中為true,只讀。
isUploadedBoolean如果該文件已經上傳了,則為true。只讀。
isSuccessBoolean如果該文件已經上傳成功了,則為true。只讀.
isCancelBoolean如果上傳被取消為true。只讀。
isErrorBoolean如果上傳出現錯誤為true。只讀。
uploaderObject些文件參考父上傳對象。只讀。

方法

方法名傳參與返回說明
removefunction() {}從隊列中刪除此文件
uploadfunction() {}上傳此文件
cancelfunction() {}取消上傳此文件

回調

方法名傳參與返回說明
onBeforeUploadfunction() {}上傳某個項目(文件)之前觸發
onProgressfunction(progress) {}On file upload progress.
onSuccessfunction(response, status, headers) {}上傳成功后觸發
onErrorfunction(response, status, headers) {}上傳出錯時觸發
onCancelfunction(response, status, headers) { }取消上傳時觸發
onCompletefunction(response, status, headers) {}在文件上傳完成時觸發(獨立操作成功)

2.3.3 Filters

注入過濾器的兩種方式:


var uploader = new FileUploader({filters: [{name: 'yourName1',// 自定義的過濾器fn: function(item) {return true;}}] });// 另一種方式加入自定義過濾器 uploader.filters.push({name: 'yourName2',fn: function(item) {return true;} });

已定義好的過濾器


folder
queueLimit


3. 示例

3.1 html頁面代碼

<!-- multiple屬性支持一次性選擇多個文件 --> <input type="file" nv-file-select="" uploader="uploader" multiple="">

3.2 JS代碼

'use strict'; angular.module('app', ['angularFileUpload']).controller('AppController', ['$scope', 'FileUploader', function($scope, FileUploader) {//選擇文件并創建文件對象有var uploader = $scope.uploader = new FileUploader({url: 'upload.php'});// 過濾器uploader.filters.push({name: 'customFilter',fn: function(item /*{File|FileLikeObject}*/, options) {return this.queue.length < 10;}});// 回調uploader.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/, filter, options) {console.info('onWhenAddingFileFailed', item, filter, options);};uploader.onAfterAddingFile = function(fileItem) {console.info('onAfterAddingFile', fileItem);};uploader.onAfterAddingAll = function(addedFileItems) {console.info('onAfterAddingAll', addedFileItems);};uploader.onBeforeUploadItem = function(item) {console.info('onBeforeUploadItem', item);};uploader.onProgressItem = function(fileItem, progress) {console.info('onProgressItem', fileItem, progress);};uploader.onProgressAll = function(progress) {console.info('onProgressAll', progress);};uploader.onSuccessItem = function(fileItem, response, status, headers) {console.info('onSuccessItem', fileItem, response, status, headers);};uploader.onErrorItem = function(fileItem, response, status, headers) {console.info('onErrorItem', fileItem, response, status, headers);};uploader.onCancelItem = function(fileItem, response, status, headers) {console.info('onCancelItem', fileItem, response, status, headers);};uploader.onCompleteItem = function(fileItem, response, status, headers) {console.info('onCompleteItem', fileItem, response, status, headers);};uploader.onCompleteAll = function() {console.info('onCompleteAll');};console.info('uploader', uploader);}]);

4.只能上傳圖片的過濾器

uploader.filters.push({name: 'imageFilter',fn: function(item /*{File|FileLikeObject}*/, options) {var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';return '|jpg|png|jpeg|bmp|gif|'.indexOf(type) !== -1;}});

5.插件代碼

如果沒下載到插件,可復制 里的代碼

/*angular-file-upload v2.1.3https://github.com/nervgh/angular-file-upload */!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):"object"==typeof exports?exports["angular-file-upload"]=t():e["angular-file-upload"]=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=r(n(2)),o=r(n(3)),s=r(n(4)),a=r(n(5)),u=r(n(6)),l=r(n(7)),c=r(n(1)),f=r(n(8)),p=r(n(9)),d=r(n(10)),v=r(n(11)),h=r(n(12));angular.module(i.name,[]).value("fileUploaderOptions",o).factory("FileUploader",s).factory("FileLikeObject",a).factory("FileItem",u).factory("FileDirective",l).factory("FileSelect",c).factory("FileDrop",f).factory("FileOver",p).directive("nvFileSelect",d).directive("nvFileDrop",v).directive("nvFileOver",h).run(["FileUploader","FileLikeObject","FileItem","FileDirective","FileSelect","FileDrop","FileOver",function(e,t,n,r,i,o,s){e.FileLikeObject=t,e.FileItem=n,e.FileDirective=r,e.FileSelect=i,e.FileDrop=o,e.FileOver=s}])},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=function(){function e(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function l(e,t,n){var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:l(i,t,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},s=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)},a=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},u=(r(n(2)),angular.extend);e.exports=function(e){var t=function(e){function t(e){a(this,t);var n=u(e,{events:{$destroy:"destroy",change:"onChange"},prop:"select"});o(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,n),this.uploader.isHTML5||this.element.removeAttr("multiple"),this.element.prop("value",null)}return s(t,e),i(t,{getOptions:{value:function(){}},getFilters:{value:function(){}},isEmptyAfterSelection:{value:function(){return!!this.element.attr("multiple")}},onChange:{value:function(){var e=this.uploader.isHTML5?this.element[0].files:this.element[0],t=this.getOptions(),n=this.getFilters();this.uploader.isHTML5||this.destroy(),this.uploader.addToQueue(e,t,n),this.isEmptyAfterSelection()&&this.element.prop("value",null)}}}),t}(e);return t},e.exports.$inject=["FileDirective"]},function(e,t){e.exports={name:"angularFileUpload"}},function(e,t){"use strict";e.exports={url:"/",alias:"file",headers:{},queue:[],progress:0,autoUpload:!1,removeAfterUpload:!1,method:"POST",filters:[],formData:[],queueLimit:Number.MAX_VALUE,withCredentials:!1}},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=function(){function e(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},s=(r(n(2)),angular.copy),a=angular.extend,u=angular.forEach,l=angular.isObject,c=angular.isNumber,f=angular.isDefined,p=angular.isArray,d=angular.element;e.exports=function(e,t,n,r,v,h){var m=r.File,g=r.FormData,_=function(){function r(t){o(this,r);var n=s(e);a(this,n,t,{isUploading:!1,_nextIndex:0,_failFilterIndex:-1,_directives:{select:[],drop:[],over:[]}}),this.filters.unshift({name:"queueLimit",fn:this._queueLimitFilter}),this.filters.unshift({name:"folder",fn:this._folderFilter})}return i(r,{addToQueue:{value:function(e,t,n){var r=this,i=this.isArrayLikeObject(e)?e:[e],o=this._getFilters(n),s=this.queue.length,a=[];u(i,function(e){var n=new v(e);if(r._isValidFile(n,o,t)){var i=new h(r,e,t);a.push(i),r.queue.push(i),r._onAfterAddingFile(i)}else{var s=o[r._failFilterIndex];r._onWhenAddingFileFailed(n,s,t)}}),this.queue.length!==s&&(this._onAfterAddingAll(a),this.progress=this._getTotalProgress()),this._render(),this.autoUpload&&this.uploadAll()}},removeFromQueue:{value:function(e){var t=this.getIndexOfItem(e),n=this.queue[t];n.isUploading&&n.cancel(),this.queue.splice(t,1),n._destroy(),this.progress=this._getTotalProgress()}},clearQueue:{value:function(){for(;this.queue.length;)this.queue[0].remove();this.progress=0}},uploadItem:{value:function(e){var t=this.getIndexOfItem(e),n=this.queue[t],r=this.isHTML5?"_xhrTransport":"_iframeTransport";n._prepareToUploading(),this.isUploading||(this.isUploading=!0,this[r](n))}},cancelItem:{value:function(e){var t=this.getIndexOfItem(e),n=this.queue[t],r=this.isHTML5?"_xhr":"_form";n&&n.isUploading&&n[r].abort()}},uploadAll:{value:function(){var e=this.getNotUploadedItems().filter(function(e){return!e.isUploading});e.length&&(u(e,function(e){return e._prepareToUploading()}),e[0].upload())}},cancelAll:{value:function(){var e=this.getNotUploadedItems();u(e,function(e){return e.cancel()})}},isFile:{value:function(e){return this.constructor.isFile(e)}},isFileLikeObject:{value:function(e){return this.constructor.isFileLikeObject(e)}},isArrayLikeObject:{value:function(e){return this.constructor.isArrayLikeObject(e)}},getIndexOfItem:{value:function(e){return c(e)?e:this.queue.indexOf(e)}},getNotUploadedItems:{value:function(){return this.queue.filter(function(e){return!e.isUploaded})}},getReadyItems:{value:function(){return this.queue.filter(function(e){return e.isReady&&!e.isUploading}).sort(function(e,t){return e.index-t.index})}},destroy:{value:function(){var e=this;u(this._directives,function(t){u(e._directives[t],function(e){e.destroy()})})}},onAfterAddingAll:{value:function(e){}},onAfterAddingFile:{value:function(e){}},onWhenAddingFileFailed:{value:function(e,t,n){}},onBeforeUploadItem:{value:function(e){}},onProgressItem:{value:function(e,t){}},onProgressAll:{value:function(e){}},onSuccessItem:{value:function(e,t,n,r){}},onErrorItem:{value:function(e,t,n,r){}},onCancelItem:{value:function(e,t,n,r){}},onCompleteItem:{value:function(e,t,n,r){}},onCompleteAll:{value:function(){}},_getTotalProgress:{value:function(e){if(this.removeAfterUpload)return e||0;var t=this.getNotUploadedItems().length,n=t?this.queue.length-t:this.queue.length,r=100/this.queue.length,i=(e||0)*r/100;return Math.round(n*r+i)}},_getFilters:{value:function(e){if(!e)return this.filters;if(p(e))return e;var t=e.match(/[^\s,]+/g);return this.filters.filter(function(e){return-1!==t.indexOf(e.name)})}},_render:{value:function(){t.$$phase||t.$apply()}},_folderFilter:{value:function(e){return!(!e.size&&!e.type)}},_queueLimitFilter:{value:function(){return this.queue.length<this.queueLimit}},_isValidFile:{value:function(e,t,n){var r=this;return this._failFilterIndex=-1,t.length?t.every(function(t){return r._failFilterIndex++,t.fn.call(r,e,n)}):!0}},_isSuccessCode:{value:function(e){return e>=200&&300>e||304===e}},_transformResponse:{value:function(e,t){var r=this._headersGetter(t);return u(n.defaults.transformResponse,function(t){e=t(e,r)}),e}},_parseHeaders:{value:function(e){var t,n,r,i={};return e?(u(e.split("\n"),function(e){r=e.indexOf(":"),t=e.slice(0,r).trim().toLowerCase(),n=e.slice(r+1).trim(),t&&(i[t]=i[t]?i[t]+", "+n:n)}),i):i}},_headersGetter:{value:function(e){return function(t){return t?e[t.toLowerCase()]||null:e}}},_xhrTransport:{value:function(e){var t=this,n=e._xhr=new XMLHttpRequest,r=new g;if(this._onBeforeUploadItem(e),u(e.formData,function(e){u(e,function(e,t){r.append(t,e)})}),"number"!=typeof e._file.size)throw new TypeError("The file specified is no longer valid");r.append(e.alias,e._file,e.file.name),n.upload.onprogress=function(n){var r=Math.round(n.lengthComputable?100*n.loaded/n.total:0);t._onProgressItem(e,r)},n.onload=function(){var r=t._parseHeaders(n.getAllResponseHeaders()),i=t._transformResponse(n.response,r),o=t._isSuccessCode(n.status)?"Success":"Error",s="_on"+o+"Item";t[s](e,i,n.status,r),t._onCompleteItem(e,i,n.status,r)},n.onerror=function(){var r=t._parseHeaders(n.getAllResponseHeaders()),i=t._transformResponse(n.response,r);t._onErrorItem(e,i,n.status,r),t._onCompleteItem(e,i,n.status,r)},n.onabort=function(){var r=t._parseHeaders(n.getAllResponseHeaders()),i=t._transformResponse(n.response,r);t._onCancelItem(e,i,n.status,r),t._onCompleteItem(e,i,n.status,r)},n.open(e.method,e.url,!0),n.withCredentials=e.withCredentials,u(e.headers,function(e,t){n.setRequestHeader(t,e)}),n.send(r),this._render()}},_iframeTransport:{value:function(e){var t=this,n=d('<form style="display: none;" />'),r=d('<iframe name="iframeTransport'+Date.now()+'">'),i=e._input;e._form&&e._form.replaceWith(i),e._form=n,this._onBeforeUploadItem(e),i.prop("name",e.alias),u(e.formData,function(e){u(e,function(e,t){var r=d('<input type="hidden" name="'+t+'" />');r.val(e),n.append(r)})}),n.prop({action:e.url,method:"POST",target:r.prop("name"),enctype:"multipart/form-data",encoding:"multipart/form-data"}),r.bind("load",function(){var n="",i=200;try{n=r[0].contentDocument.body.innerHTML}catch(o){i=500}var s={response:n,status:i,dummy:!0},a={},u=t._transformResponse(s.response,a);t._onSuccessItem(e,u,s.status,a),t._onCompleteItem(e,u,s.status,a)}),n.abort=function(){var o,s={status:0,dummy:!0},a={};r.unbind("load").prop("src","javascript:false;"),n.replaceWith(i),t._onCancelItem(e,o,s.status,a),t._onCompleteItem(e,o,s.status,a)},i.after(n),n.append(i).append(r),n[0].submit(),this._render()}},_onWhenAddingFileFailed:{value:function(e,t,n){this.onWhenAddingFileFailed(e,t,n)}},_onAfterAddingFile:{value:function(e){this.onAfterAddingFile(e)}},_onAfterAddingAll:{value:function(e){this.onAfterAddingAll(e)}},_onBeforeUploadItem:{value:function(e){e._onBeforeUpload(),this.onBeforeUploadItem(e)}},_onProgressItem:{value:function(e,t){var n=this._getTotalProgress(t);this.progress=n,e._onProgress(t),this.onProgressItem(e,t),this.onProgressAll(n),this._render()}},_onSuccessItem:{value:function(e,t,n,r){e._onSuccess(t,n,r),this.onSuccessItem(e,t,n,r)}},_onErrorItem:{value:function(e,t,n,r){e._onError(t,n,r),this.onErrorItem(e,t,n,r)}},_onCancelItem:{value:function(e,t,n,r){e._onCancel(t,n,r),this.onCancelItem(e,t,n,r)}},_onCompleteItem:{value:function(e,t,n,r){e._onComplete(t,n,r),this.onCompleteItem(e,t,n,r);var i=this.getReadyItems()[0];return this.isUploading=!1,f(i)?void i.upload():(this.onCompleteAll(),this.progress=this._getTotalProgress(),void this._render())}}},{isFile:{value:function(e){return m&&e instanceof m}},isFileLikeObject:{value:function(e){return e instanceof v}},isArrayLikeObject:{value:function(e){return l(e)&&"length"in e}},inherit:{value:function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.super_=t}}}),r}();return _.prototype.isHTML5=!(!m||!g),_.isHTML5=_.prototype.isHTML5,_},e.exports.$inject=["fileUploaderOptions","$rootScope","$http","$window","FileLikeObject","FileItem"]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=function(){function e(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},s=(r(n(2)),angular.copy),a=angular.isElement,u=angular.isString;e.exports=function(){var e=function(){function e(t){o(this,e);var n=a(t),r=n?t.value:t,i=u(r)?"FakePath":"Object",s="_createFrom"+i;this[s](r)}return i(e,{_createFromFakePath:{value:function(e){this.lastModifiedDate=null,this.size=null,this.type="like/"+e.slice(e.lastIndexOf(".")+1).toLowerCase(),this.name=e.slice(e.lastIndexOf("/")+e.lastIndexOf("\\")+2)}},_createFromObject:{value:function(e){this.lastModifiedDate=s(e.lastModifiedDate),this.size=e.size,this.type=e.type,this.name=e.name}}}),e}();return e},e.exports.$inject=[]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=function(){function e(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},s=(r(n(2)),angular.copy),a=angular.extend,u=angular.element,l=angular.isElement;e.exports=function(e,t){var n=function(){function n(e,r,i){o(this,n);var c=l(r),f=c?u(r):null,p=c?null:r;a(this,{url:e.url,alias:e.alias,headers:s(e.headers),formData:s(e.formData),removeAfterUpload:e.removeAfterUpload,withCredentials:e.withCredentials,method:e.method},i,{uploader:e,file:new t(r),isReady:!1,isUploading:!1,isUploaded:!1,isSuccess:!1,isCancel:!1,isError:!1,progress:0,index:null,_file:p,_input:f}),f&&this._replaceNode(f)}return i(n,{upload:{value:function(){try{this.uploader.uploadItem(this)}catch(e){this.uploader._onCompleteItem(this,"",0,[]),this.uploader._onErrorItem(this,"",0,[])}}},cancel:{value:function(){this.uploader.cancelItem(this)}},remove:{value:function(){this.uploader.removeFromQueue(this)}},onBeforeUpload:{value:function(){}},onProgress:{value:function(e){}},onSuccess:{value:function(e,t,n){}},onError:{value:function(e,t,n){}},onCancel:{value:function(e,t,n){}},onComplete:{value:function(e,t,n){}},_onBeforeUpload:{value:function(){this.isReady=!0,this.isUploading=!0,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.onBeforeUpload()}},_onProgress:{value:function(e){this.progress=e,this.onProgress(e)}},_onSuccess:{value:function(e,t,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!0,this.isCancel=!1,this.isError=!1,this.progress=100,this.index=null,this.onSuccess(e,t,n)}},_onError:{value:function(e,t,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!1,this.isCancel=!1,this.isError=!0,this.progress=0,this.index=null,this.onError(e,t,n)}},_onCancel:{value:function(e,t,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!0,this.isError=!1,this.progress=0,this.index=null,this.onCancel(e,t,n)}},_onComplete:{value:function(e,t,n){this.onComplete(e,t,n),this.removeAfterUpload&&this.remove()}},_destroy:{value:function(){this._input&&this._input.remove(),this._form&&this._form.remove(),delete this._form,delete this._input}},_prepareToUploading:{value:function(){this.index=this.index||++this.uploader._nextIndex,this.isReady=!0}},_replaceNode:{value:function(t){var n=e(t.clone())(t.scope());n.prop("value",null),t.css("display","none"),t.after(n)}}}),n}();return n},e.exports.$inject=["$compile","FileLikeObject"]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=function(){function e(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},s=(r(n(2)),angular.extend);e.exports=function(){var e=function(){function e(t){o(this,e),s(this,t),this.uploader._directives[this.prop].push(this),this._saveLinks(),this.bind()}return i(e,{bind:{value:function(){for(var e in this.events){var t=this.events[e];this.element.bind(e,this[t])}}},unbind:{value:function(){for(var e in this.events)this.element.unbind(e,this.events[e])}},destroy:{value:function(){var e=this.uploader._directives[this.prop].indexOf(this);this.uploader._directives[this.prop].splice(e,1),this.unbind()}},_saveLinks:{value:function(){for(var e in this.events){var t=this.events[e];this[t]=this[t].bind(this)}}}}),e}();return e.prototype.events={},e},e.exports.$inject=[]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=function(){function e(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function c(e,t,n){var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:c(i,t,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},s=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)},a=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},u=(r(n(2)),angular.extend),l=angular.forEach;e.exports=function(e){var t=function(e){function t(e){a(this,t);var n=u(e,{events:{$destroy:"destroy",drop:"onDrop",dragover:"onDragOver",dragleave:"onDragLeave"},prop:"drop"});o(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,n)}return s(t,e),i(t,{getOptions:{value:function(){}},getFilters:{value:function(){}},onDrop:{value:function(e){var t=this._getTransfer(e);if(t){var n=this.getOptions(),r=this.getFilters();this._preventAndStop(e),l(this.uploader._directives.over,this._removeOverClass,this),this.uploader.addToQueue(t.files,n,r)}}},onDragOver:{value:function(e){var t=this._getTransfer(e);this._haveFiles(t.types)&&(t.dropEffect="copy",this._preventAndStop(e),l(this.uploader._directives.over,this._addOverClass,this))}},onDragLeave:{value:function(e){e.currentTarget!==this.element[0]&&(this._preventAndStop(e),l(this.uploader._directives.over,this._removeOverClass,this))}},_getTransfer:{value:function(e){return e.dataTransfer?e.dataTransfer:e.originalEvent.dataTransfer}},_preventAndStop:{value:function(e){e.preventDefault(),e.stopPropagation()}},_haveFiles:{value:function(e){return e?e.indexOf?-1!==e.indexOf("Files"):e.contains?e.contains("Files"):!1:!1}},_addOverClass:{value:function(e){e.addOverClass()}},_removeOverClass:{value:function(e){e.removeOverClass()}}}),t}(e);return t},e.exports.$inject=["FileDirective"]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e},i=function(){function e(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function l(e,t,n){var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:l(i,t,n)}if("value"in r&&r.writable)return r.value;var o=r.get;return void 0===o?void 0:o.call(n)},s=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)},a=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},u=(r(n(2)),angular.extend);e.exports=function(e){var t=function(e){function t(e){a(this,t);var n=u(e,{events:{$destroy:"destroy"},prop:"over",overClass:"nv-file-over"});o(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,n)}return s(t,e),i(t,{addOverClass:{value:function(){this.element.addClass(this.getOverClass())}},removeOverClass:{value:function(){this.element.removeClass(this.getOverClass())}},getOverClass:{value:function(){return this.overClass}}}),t}(e);return t},e.exports.$inject=["FileDirective"]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e};r(n(2));e.exports=function(e,t,n){return{link:function(r,i,o){var s=r.$eval(o.uploader);if(!(s instanceof t))throw new TypeError('"Uploader" must be an instance of FileUploader');var a=new n({uploader:s,element:i});a.getOptions=e(o.options).bind(a,r),a.getFilters=function(){return o.filters}}}},e.exports.$inject=["$parse","FileUploader","FileSelect"]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e};r(n(2));e.exports=function(e,t,n){return{link:function(r,i,o){var s=r.$eval(o.uploader);if(!(s instanceof t))throw new TypeError('"Uploader" must be an instance of FileUploader');if(s.isHTML5){var a=new n({uploader:s,element:i});a.getOptions=e(o.options).bind(a,r),a.getFilters=function(){return o.filters}}}}},e.exports.$inject=["$parse","FileUploader","FileDrop"]},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e["default"]:e};r(n(2));e.exports=function(e,t){return{link:function(n,r,i){var o=n.$eval(i.uploader);if(!(o instanceof e))throw new TypeError('"Uploader" must be an instance of FileUploader');var s=new t({uploader:o,element:r});s.getOverClass=function(){return i.overClass||s.overClass}}}},e.exports.$inject=["FileUploader","FileOver"]}])}); //# sourceMappingURL=angular-file-upload.min.js.map

總結

以上是生活随笔為你收集整理的深究angularJS——(上传)FileUploader中文翻译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

91丨九色丨国产在线 | 二区三区精品 | 最新在线你懂的 | 天天天天天天操 | 69视频在线播放 | 91爱看片 | 99精品一区二区 | 午夜国产一区二区三区四区 | 天天操福利视频 | 91视频亚洲| 国产日女人 | 91最新视频在线观看 | 中文字幕成人av | 亚洲精品视频在线观看免费视频 | 亚洲黄色小说网址 | 一个色综合网站 | 91精品在线麻豆 | 99爱精品视频 | 免费福利视频导航 | 午夜少妇av | 日本99干网| 欧美亚洲精品一区 | 久久在线观看视频 | 六月色 | 五月婷婷在线观看视频 | 97超碰资源网 | 视频一区二区在线观看 | 九九久久免费视频 | 亚洲美女免费精品视频在线观看 | 日操操 | 国产综合精品一区二区三区 | 精品一区久久 | 亚洲传媒在线 | 中国一区二区视频 | 亚a在线| 午夜精品久久久久久久久久久久 | 不卡的av电影在线观看 | 国产黄色免费在线观看 | 欧美精品久久久久久久久老牛影院 | 天天操夜夜爱 | 欧美成人按摩 | 色黄视频免费观看 | 人人爽人人片 | 欧美精品亚洲精品日韩精品 | 国产一级片免费播放 | 天天综合网天天 | 973理论片235影院9 | 亚洲精品欧洲精品 | 日韩精品视频免费在线观看 | 国产成人精品综合久久久 | 国产精品日韩高清 | 精品一区二区av | 日本午夜免费福利视频 | 在线观看91精品国产网站 | 亚洲九九影院 | 天天综合91 | 激情久久一区二区三区 | 97在线观看免费视频 | 免费成人av网站 | 日韩av视屏在线观看 | 超碰在线观看av.com | 国产在线观看你懂得 | 激情久久综合 | 国产亚洲字幕 | 欧美日韩国产亚洲乱码字幕 | 婷婷久久网 | 日韩色区| 西西4444www大胆无视频 | 在线观看精品一区 | 毛片99 | 天天操夜夜操夜夜操 | 深夜成人av | 99中文字幕在线观看 | 久久精品资源 | 97超碰在线免费 | 国产亚洲久一区二区 | 麻豆系列在线观看 | 麻豆精品视频在线观看免费 | 欧美孕妇与黑人孕交 | 日韩免费大片 | 成人黄色视| 在线观看麻豆av | 欧美日韩国产精品一区二区 | 91在线文字幕 | 久久综合九色综合欧美狠狠 | 五月婷婷在线视频观看 | 最新中文字幕在线播放 | 麻豆国产精品va在线观看不卡 | 国产99精品 | 国产一级片免费播放 | 521色香蕉网站在线观看 | 亚洲免费专区 | 一级一片免费视频 | 色噜噜日韩精品一区二区三区视频 | 超碰在线亚洲 | 精品久久久亚洲 | 亚洲天堂自拍视频 | 久久久久国产免费免费 | 五月天激情视频在线观看 | 国产成人黄色在线 | 在线视频1卡二卡三卡 | 99免费看片| 国产精品手机看片 | 91丨九色丨国产在线观看 | 国产亚洲在线观看 | 亚洲电影自拍 | 人人讲 | 日韩在线电影一区 | 不卡视频在线看 | 欧美一级片在线播放 | 日韩av在线不卡 | 亚洲九九影院 | 四虎影视精品 | 在线免费高清一区二区三区 | 国产精品永久免费在线 | 国产精品自产拍在线观看桃花 | 日韩在线国产精品 | 狂野欧美激情性xxxx | 天天爱天天射 | 欧洲精品码一区二区三区免费看 | 狠狠色狠狠色终合网 | 超碰97人人射妻 | 欧美色图88 | 国产成人精品一区二区三区在线观看 | 欧美日韩一区二区三区免费视频 | 国产原厂视频在线观看 | 久久久999免费视频 日韩网站在线 | 99视频精品免费观看, | 久久亚洲人 | 免费成人av网站 | 日夜夜精品视频 | 日韩网站中文字幕 | 成人免费网站在线观看 | 欧美午夜精品久久久久 | 日韩欧美综合 | 天天干天天天 | 久久久久久久久毛片精品 | 国产精品久久久久久爽爽爽 | 日本精品中文字幕在线观看 | av黄网站| 中文字幕在线免费观看视频 | 国产亚洲精品久久久久动 | 亚洲精品在线免费看 | 午夜影视剧场 | 精品视频9999| 四虎最新入口 | 黄网站色成年免费观看 | 免费网址你懂的 | 五月天婷婷狠狠 | 欧美a级成人淫片免费看 | 亚洲精品在线免费观看视频 | 偷拍精偷拍精品欧洲亚洲网站 | 亚洲精品色婷婷 | 色噜噜狠狠狠狠色综合久不 | 色综合咪咪久久网 | 国内精品视频一区二区三区八戒 | 欧美一级特黄aaaaaa大片在线观看 | 高清av免费看 | 午夜美女av | 97超碰色偷偷 | 91九色蝌蚪视频 | 天堂av免费看| 日日添夜夜添 | 欧美一区二区在线刺激视频 | 国产精品福利午夜在线观看 | 91精品久久久久久久久久入口 | av大全在线免费观看 | 涩涩资源网 | ww视频在线观看 | av在线色| 久久成人高清 | 亚洲精品中文字幕视频 | 天堂在线成人 | 精品国产诱惑 | 久久超级碰 | 特级西西444www高清大视频 | 韩国精品视频在线观看 | 在线精品一区二区 | 丁香花在线观看免费完整版视频 | 不卡电影一区二区三区 | 中文在线免费看视频 | 日韩美精品视频 | 亚洲国产精品人久久电影 | 天天操天天色天天 | 亚洲男男gaygayxxxgv | 久久久999免费视频 日韩网站在线 | 国产一二三在线视频 | 免费看国产视频 | 人人玩人人添人人澡超碰 | 在线电影日韩 | 久久久久久久久久电影 | 91一区在线观看 | 成人久久久精品国产乱码一区二区 | av日韩中文 | 麻豆91在线看 | 亚洲国产精品成人综合 | 免费网站污 | 在线av资源 | 99婷婷狠狠成为人免费视频 | 国产精品99免视看9 国产精品毛片一区视频 | 亚洲黄色一级大片 | 国产精品区免费视频 | 婷婷久久婷婷 | 日韩动态视频 | 九九热视频在线 | 久草在线免费资源站 | 色综合久久久久久中文网 | 久久免费激情视频 | 在线免费观看麻豆 | 在线观看韩国av | 在线日本看片免费人成视久网 | 国产精品女人久久久久久 | 人人看人人爱 | 精品久久片 | 国产女人免费看a级丨片 | 九色视频自拍 | 99九九99九九九视频精品 | 啪一啪在线 | 精品久久1 | 五月婷婷电影网 | 国产成人亚洲在线电影 | 久久免费中文视频 | 亚洲a在线观看 | 午夜在线免费观看视频 | 天天干天天搞天天射 | 国内精品视频在线 | 国产精品一区二区精品视频免费看 | 国产五码一区 | 久久天天躁夜夜躁狠狠躁2022 | 亚洲精品国产高清 | 狠狠色免费 | 成人动态视频 | 精品一区二区三区久久久 | 视频高清 | 97超碰国产精品女人人人爽 | 欧美久久影院 | 天堂入口网站 | 麻豆va一区二区三区久久浪 | 婷婷激情小说网 | 精品免费久久 | 日韩专区中文字幕 | 麻豆91网站| 在线免费观看视频a | 在线免费观看国产 | 91看片在线 | 一区二区三区久久精品 | 日日干天天插 | 日韩午夜小视频 | 不卡av电影在线观看 | av日韩av| 瑞典xxxx性hd极品 | 中文字幕日韩av | 美女久久久久久久 | av在线精品 | 人人讲| 国产精品自产拍在线观看中文 | 欧美一区在线观看视频 | 五月花激情 | 精品亚洲一区二区 | 欧美精品在线一区二区 | 天天干天天干天天色 | 欧美一区在线观看视频 | 精品久久久久久久久久久久久 | 亚洲精品午夜视频 | 丰满少妇一级片 | 国产1区2| 狠狠狠色丁香婷婷综合激情 | 免费在线成人 | 久草在线中文视频 | 日韩免费电影在线观看 | 日p在线观看 | 日韩免费视频 | 久久99精品久久只有精品 | 成人动漫一区二区三区 | 中文字幕在线久一本久 | 日韩欧美区| 精品国产片| 国产精品视频久久久 | 欧美精品v国产精品v日韩精品 | 99精品视频精品精品视频 | 麻豆免费视频观看 | 精品伊人久久久 | 在线91色| 毛片网免费 | 日韩影视大全 | 天天操天天干天天 | 国产精品美女久久久网av | 亚洲自拍偷拍色图 | 日韩精品免费在线 | 久久超碰在线 | 在线观看国产麻豆 | 18久久久久久 | 亚洲国产网址 | 91福利试看 | 最近中文字幕在线中文高清版 | 成人av电影免费观看 | 99在线视频免费观看 | 婷婷成人综合 | 在线视频a | 91九色porn在线资源 | 国产99久久久国产精品免费看 | 天天操天天干天天 | 91亚洲精品久久久久图片蜜桃 | 国产美女免费观看 | 开心激情五月婷婷 | 久草在线免费色站 | 色婷婷综合久久久 | 久草在线视频中文 | 久久新视频 | 麻豆视频在线免费 | 91香蕉视频 mp4 | 最近高清中文字幕在线国语5 | www.综合网.com | 欧日韩在线| 成人小视频在线免费观看 | 久久亚洲二区 | www.99热精品 | 国产日产欧美在线观看 | 日日操天天爽 | 国产精品丝袜久久久久久久不卡 | 日韩免费视频一区二区 | 欧美一区,二区 | 天天碰天天操视频 | 一区二区三区免费看 | 国产精品久久久久久吹潮天美传媒 | 人人狠狠综合久久亚洲 | 欧美日韩国产一区二区三区 | av三级在线免费观看 | 亚洲开心色 | 国产成人在线网站 | 欧美a级在线播放 | 久久久久久久久久久久亚洲 | 成人羞羞视频在线观看免费 | 国产网站在线免费观看 | 亚洲欧美日韩在线看 | 国产色婷婷精品综合在线手机播放 | 日韩电影一区二区在线 | 黄色三级免费观看 | 国产又粗又长又硬免费视频 | 久久精品电影院 | 在线观看视频一区二区三区 | 亚洲一区二区高潮无套美女 | 色偷偷88888欧美精品久久 | 91探花在线视频 | 狠狠五月天 | 激情综合色综合久久综合 | 高清不卡一区二区在线 | 国产一级二级av | 91视频 - v11av | 天天操 夜夜操 | 人人澡人人舔 | 高清av中文在线字幕观看1 | 色婷婷在线视频 | 就色干综合 | 激情五月五月婷婷 | 国产精品久久久久久一区二区三区 | 国产精品久久99综合免费观看尤物 | 蜜桃传媒一区二区 | 国产精品一级在线 | 日韩电影在线观看一区二区三区 | 成人影片在线免费观看 | 成人免费共享视频 | 成人免费一区二区三区在线观看 | 天天操天天拍 | 国产精品午夜久久久久久99热 | 日日夜夜草 | 亚洲欧美在线观看视频 | 91麻豆网| 一区二区视频电影在线观看 | 97视频人人免费看 | 国产区精品区 | 99在线视频观看 | 亚洲一区二区三区四区精品 | 99久久99久国产黄毛片 | 久久理论电影网 | 九九免费在线看完整版 | 九九热只有这里有精品 | 亚洲电影久久 | 久久情网 | 亚洲精品88欧美一区二区 | 992tv在线观看| 蜜臀av性久久久久av蜜臀三区 | 婷婷精品国产一区二区三区日韩 | 日韩激情视频 | 欧美久久久久 | 亚洲最快最全在线视频 | 成人全视频免费观看在线看 | 亚洲激情小视频 | 国产精品嫩草影院123 | 91精品视频免费看 | 亚洲成人影音 | 日韩中文字幕在线不卡 | 欧美国产日韩久久 | 国产a级免费 | 一区二区免费不卡在线 | 亚洲人天堂 | 国产九九在线 | 少妇bbb搡bbbb搡bbbb | 在线观看黄网站 | 五月天婷婷在线播放 | 国语精品久久 | 久久免费a | 91av视频在线观看免费 | 成人国产精品免费观看 | 亚洲午夜精品久久久久久久久久久久 | 97在线观看免费高清完整版在线观看 | 亚洲精品无 | 黄色国产精品 | 久久99精品国产麻豆宅宅 | 亚洲欧美日韩精品久久奇米一区 | 欧美日在线观看 | www色综合| 丁香久久久 | 国产福利一区二区三区在线观看 | 在线观看一区 | 黄色成年网站 | 日韩欧美xxxx| 97色在线观看 | 九热在线| 国产精品视频永久免费播放 | 亚洲精品免费在线 | 五月婷婷爱| 午夜视频免费在线观看 | 久久久亚洲电影 | 女女av在线 | 成人教育av | 亚洲欧美日韩一区二区三区在线观看 | 亚洲一级片av | 国产精品毛片一区 | 免费毛片一区二区三区久久久 | 亚洲精品视频在线观看免费视频 | 国产探花 | 亚洲 欧洲 国产 精品 | 国产精品综合久久久 | 草久在线观看视频 | 欧美一级片免费在线观看 | 日韩一区在线免费观看 | 国产成人精品av久久 | 亚洲综合少妇 | 久久一区二区三区日韩 | 亚洲国产精品激情在线观看 | 日本高清中文字幕有码在线 | 亚洲精品自拍视频在线观看 | 黄网站免费久久 | 久久久精品国产一区二区电影四季 | 亚洲乱码中文字幕综合 | 在线播放亚洲激情 | 日产乱码一二三区别在线 | 欧美一级爽 | 欧美另类成人 | 六月激情久久 | 免费在线一区二区 | 在线视频 国产 日韩 | 国产不卡免费av | 亚洲免费成人av电影 | 亚洲视屏 | 91成人精品国产刺激国语对白 | 午夜精品久久久久久久99热影院 | 亚洲五月花 | 天堂va在线观看 | 欧美福利在线播放 | 色多多视频在线观看 | 欧美日韩高清在线一区 | 久草在线免费播放 | 91九色精品 | 亚洲一区欧美精品 | 成人毛片一区二区三区 | 亚洲国产精品一区二区久久,亚洲午夜 | 91在线免费观看国产 | 日韩免费三区 | 又黄又刺激 | 亚洲精品在线一区二区三区 | 国产精品久久久久av | 欧美一区二区日韩一区二区 | 在线观看一级片 | 99精品视频免费观看视频 | 精品久久网 | 日韩在线视频免费看 | 日韩欧美一区二区不卡 | 久草视频在线免费看 | 久久久精品免费看 | 国产一区视频在线播放 | 黄色资源在线观看 | 日韩三级一区 | 国产视频一区二区在线 | 国产精品入口a级 | 久久精品一区二区三区视频 | 欧美网址在线观看 | 日韩一区二区三区免费电影 | 日日夜夜天天操 | 欧洲一区二区在线观看 | 三级a毛片 | 免费在线激情电影 | 免费在线观看毛片网站 | 国产伦精品一区二区三区… | 在线观看www.| 啪啪免费观看网站 | 不卡的av在线 | 国产伦理剧 | 天天天综合 | 看片网站黄 | 香蕉久草在线 | 四虎成人免费观看 | 亚洲免费小视频 | 日韩免费在线网站 | 中文字幕美女免费在线 | 国产精品一区二区视频 | 亚洲视频一区二区三区在线观看 | 亚洲免费精品一区二区 | 久久久久国产精品www | 天天插天天干天天操 | 丁香色婷| www久久99| 日韩av网页 | 久久这里只有精品1 | 国产一区二区免费看 | 丝袜美腿亚洲 | 欧美成人999 | www最近高清中文国语在线观看 | 精品久久久久国产免费第一页 | 欧美极品少妇xbxb性爽爽视频 | 日韩电影中文 | 色老板在线视频 | 精品在线99| 久久一区二区三区国产精品 | 国产视频不卡一区 | 久久久91精品国产一区二区三区 | 午夜精品久久一牛影视 | 91资源在线播放 | 久久久午夜剧场 | 亚洲国产中文字幕在线视频综合 | 欧美污污网站 | 欧美日韩大片在线观看 | 丁香九月激情 | 免费久久99精品国产 | 成 人 黄 色 视频播放1 | 黄色影院在线免费观看 | 国产超碰97 | 性色av免费在线观看 | av亚洲产国偷v产偷v自拍小说 | www日韩视频 | 日韩国产精品久久 | 在线观看完整版 | 97国产在线观看 | 最近中文字幕视频完整版 | 99精品免费视频 | 999亚洲国产996395 | 精品91视频 | 在线观看视频福利 | 日韩亚洲国产中文字幕 | 天天操天天干天天 | 天天夜夜狠狠操 | 国产麻豆精品传媒av国产下载 | 免费中文字幕视频 | 亚洲激情免费 | av在线专区 | 国产精品不卡在线播放 | 日日干美女 | 91精品视频在线观看免费 | 国产视频精选在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 伊人伊成久久人综合网小说 | 国产精品毛片一区二区三区 | 91高清免费 | 国产精品福利一区 | 中文字幕久久精品亚洲乱码 | 91网免费看| 极品美女被弄高潮视频网站 | 色88久久| 国产精品综合久久久久久 | 少妇按摩av | 午夜精品一区二区三区免费 | 成人免费观看视频大全 | 成人久久久精品国产乱码一区二区 | 狠狠色狠狠综合久久 | 91精品久久久久久综合乱菊 | 日韩在线观看网址 | 亚洲理论视频 | 少妇超碰在线 | 综合激情伊人 | 亚洲视频2 | 91中文字幕视频 | 国产日韩欧美视频在线观看 | 国产美女精品视频免费观看 | 亚洲国产成人高清精品 | 免费99精品国产自在在线 | 97超级碰碰 | 国产又粗又长又硬免费视频 | 国产精品成久久久久三级 | 中文字幕人成不卡一区 | 久久综合成人 | 国产高清黄 | 亚洲成人网在线 | 91av免费观看 | 亚洲精品日韩av | 1区2区视频| 欧美在线观看视频一区二区 | 黄色1级毛片 | 99热精品在线观看 | 久艹视频在线免费观看 | 国产精品视频永久免费播放 | 在线播放日韩 | 欧美日韩精品久久久 | 午夜美女福利 | www久久国产| 成人国产在线 | 欧美一区二区日韩一区二区 | 最新日韩在线 | 国产精品福利一区 | 少妇bbb好爽 | 国产黄色片在线免费观看 | 波多野结衣一区 | 911亚洲精品第一 | 91高清免费观看 | 国产日本在线 | 免费的黄色av | 亚洲欧洲国产视频 | 中文字幕一区在线 | 黄色1级大片| 亚洲美女在线国产 | 精品一区 精品二区 | bayu135国产精品视频 | 99精品在线免费在线观看 | 91综合久久一区二区 | 91成人精品视频 | 一级黄色片毛片 | 成人影视免费看 | 综合色中文 | 日本久久久亚洲精品 | 人人澡澡人人 | 成人黄色片在线播放 | 中文字幕超清在线免费 | av电影在线观看 | 日韩av影片在线观看 | 亚洲午夜精品一区 | 91最新视频在线观看 | 有没有在线观看av | 91香蕉视频在线下载 | bbbbb女女女女女bbbbb国产 | 国精产品999国精产 久久久久 | 久章草在线观看 | 欧美日韩国产伦理 | 国产精品av免费 | 国产一区二区久久久久 | 久久草在线精品 | 成年人黄色在线观看 | 精品在线亚洲视频 | 中文字幕国内精品 | 亚洲成人资源 | 久草在线电影网 | 国产精品涩涩屋www在线观看 | 亚洲精品久久久蜜桃 | 午夜久久久久久久久久影院 | 国产婷婷色 | 日韩在线网 | 中文字幕一区二区三区久久 | av 一区二区三区四区 | 久久精品视频在线 | 成人av电影免费 | 久久综合欧美 | 国产丝袜制服在线 | 国产成人三级一区二区在线观看一 | 久久精品99国产国产 | 婷婷综合影院 | 97色在线观看免费视频 | 国产视频资源在线观看 | 日韩手机在线观看 | 欧美精品在线视频 | 成年人在线 | 成人福利在线 | 国产人成精品一区二区三 | 欧美日韩一区二区在线观看 | 欧美日本在线观看视频 | av电影在线观看 | 国产精品久久久久久一二三四五 | 亚洲婷婷免费 | 久久久久久久久久久久国产精品 | 中文字幕一区二区三区在线观看 | 69av国产 | 国产精品一区一区三区 | 精品一区二三区 | 久久免费激情视频 | 日本黄色免费在线观看 | 福利一区在线视频 | av大全在线看 | 探花系列在线 | 999成人网 | 天天做天天射 | 国产成人精品一区二区在线观看 | 久久人人添人人爽添人人88v | 久久综合操 | www看片网站| 成年人在线看片 | 欧美精品黑人性xxxx | 精品一区二区综合 | 亚洲专区在线播放 | 亚洲欧美日韩国产精品一区午夜 | av网站播放 | 亚洲国产精品激情在线观看 | 中文字幕 国产视频 | 国产精品九九九九九 | 999电影免费在线观看2020 | 午夜视频在线观看一区 | 五月天亚洲综合 | 国产一二三四在线观看视频 | 欧美日韩中文视频 | 97av在线视频免费播放 | 久久久久国产一区二区三区四区 | 五月天综合网站 | 在线观看免费91 | 国产对白av | 亚洲 综合 激情 | 国产在线2020 | 久操中文字幕在线观看 | 1000部18岁以下禁看视频 | 久久天天躁夜夜躁狠狠85麻豆 | 91久久精品一区二区三区 | 国产一线天在线观看 | 91在线视频免费91 | 久久一二三四 | 激情五月***国产精品 | 国产成人三级在线观看 | av理论电影 | 伊人久久国产 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 91精选 | 在线观看视频91 | 在线免费观看视频一区二区三区 | 免费av电影网站 | 久久99热精品这里久久精品 | 中文字幕韩在线第一页 | 国产涩涩网站 | 亚洲天天草 | 欧美一区二区免费在线观看 | 欧美一级看片 | 免费成视频 | 欧美性春潮 | 婷婷激情av| 欧美va在线观看 | 日韩av在线免费播放 | 日韩免费成人 | 四虎永久视频 | 国产一区视频导航 | 久久久久久久久免费视频 | 最近久乱中文字幕 | 在线视频成人 | 成人免费观看视频大全 | 精品女同一区二区三区在线观看 | 久久新视频 | 天天操天天摸天天干 | 日韩免费电影一区二区三区 | 国产小视频国产精品 | 在线观看免费一区 | 在线亚洲天堂网 | 欧美午夜久久 | 天天天操操操 | 午夜精品视频一区 | 国产一级二级视频 | 麻豆国产精品一区二区三区 | 黄色片视频免费 | 亚洲精品在线资源 | 国产原创91 | 超碰97人人干 | 免费观看一区二区三区视频 | 国产夫妻av在线 | 国产美女视频 | 日韩中文字幕一区 | 韩国av免费看 | 久久蜜臀av | 精品国产三级a∨在线欧美 免费一级片在线观看 | 正在播放一区 | 在线观看视频你懂的 | 一区 二区电影免费在线观看 | 婷婷色 亚洲 | 在线观看免费高清视频大全追剧 | 国产一区在线视频观看 | av最新资源 | wwwwwww色 | 亚洲91精品在线观看 | 久久网站av | 日日夜夜免费精品视频 | 99久久久国产精品免费99 | 久久手机精品视频 | 亚洲精品视频在线播放 | 黄色a级片在线观看 | 免费看片亚洲 | 欧美 日韩 成人 | 麻豆影视网站 | 国产成人在线播放 | 亚洲欧洲一区二区在线观看 | 久在线观看 | 日韩精品一区二区不卡 | 超碰97在线资源 | 91成人免费看 | 夜添久久精品亚洲国产精品 | 免费视频久久久久 | 国产精品高潮呻吟久久av无 | av免费看在线| 99视频网址 | 久久人人爽人人人人片 | 色诱亚洲精品久久久久久 | 精品黄色在线观看 | 麻豆 videos| 国产精品99免费看 | 日本久草电影 | 久久免费精品一区二区三区 | 天天操天天操天天操天天操天天操天天操 | 国产成人精品av在线 | 综合天天色| 麻豆视频免费在线播放 | 蜜桃视频精品 | 国产成年免费视频 | 国产精品婷婷 | 成人在线观看免费 | 国产精品亚洲人在线观看 | 99精彩视频在线观看免费 | 国模吧一区 | 欧美成年人在线视频 | 在线观看免费av网 | 7777精品伊人久久久大香线蕉 | 国产精品久久视频 | 丁香六月婷婷开心婷婷网 | 日韩最新av在线 | 国产精品一区二区三区视频免费 | 99久久99久久免费精品蜜臀 | 欧洲激情综合 | 国产一区二区在线观看免费 | 久久婷婷五月综合色丁香 | 在线看黄色的网站 | 综合久久五月天 | 粉嫩av一区二区三区四区五区 | 欧美怡红院 | 天天操夜 | 久久综合一本 | 天天色天天射综合网 | 色婷婷99 | 久久久久一区 | 国内精品久久久久国产 | 在线看毛片网站 | 日韩精品视频久久 | 天天天天干 | 亚洲va综合va国产va中文 | 狠狠色伊人亚洲综合网站野外 | 天天干夜夜想 | 婷婷电影在线观看 | 中文字幕观看视频 | 日本一区二区不卡高清 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产精品一区二区美女视频免费看 | av福利在线播放 | 久草免费在线观看视频 | 91网站在线视频 | 午夜视频一区二区三区 | 免费看亚洲毛片 | 2023亚洲精品国偷拍自产在线 | 久久黄色影视 | 麻豆国产精品va在线观看不卡 | 日韩中文字幕电影 | 91精品国产欧美一区二区成人 | 久久国产精品久久精品国产演员表 | 久久久久国产精品一区 | 午夜精品久久久久久久久久久久 | 日本中文字幕网址 | 婷婷五综合 | 色五月成人 | 久久视频国产精品免费视频在线 | 天天色天天射天天操 | 国产精品美女久久久 | 久久尤物电影视频在线观看 | 日韩免费一区二区三区 | 久久久久一区 | 久久激情综合 | 亚洲精品国产精品国自产观看浪潮 | 91av大全| 久久久香蕉视频 | 丁香婷婷基地 | 欧美日韩国产综合一区二区 | 在线视频观看成人 | 狠狠色丁香婷婷综合视频 | 九九天堂| 六月色 | 日本精品一区二区三区在线播放视频 | 日韩欧美高清一区二区三区 | 亚洲视频综合 | 国产精品综合在线 | av黄色免费看 | 国产呻吟在线 | 久久国产免 | 国产精品久久久精品 | 久久久在线免费观看 | 国产精品久久久久9999 | 免费看污在线观看 | 天堂av在线7| 97福利在线观看 | 欧美少妇bbwhd | 亚洲一区二区三区四区在线视频 | 国产精品久久久久久久久久不蜜月 | 国产精品99久久久久久武松影视 | 亚洲一区av | 夜夜视频欧洲 | 成人91在线观看 | 九九视频一区 | 人人爱天天操 | 久久字幕精品一区 | 在线国产中文字幕 | 中文字幕在线网址 | 免费在线观看黄色网 | 精品国产日本 | 美女视频黄的免费的 | 欧美激情视频一区二区三区免费 | 99久久一区 | 精品乱码一区二区三四区 | 久久免费试看 | 久久国产精品视频免费看 | 国语久久 | 91九色国产蝌蚪 | 开心激情久久 | 国产区在线视频 | 九九亚洲精品 | 国产在线2020 | 91视视频在线直接观看在线看网页在线看 | 中文字幕第一页av | 久久久久久久久久国产精品 | 一区二区三区电影在线播 | 成人视屏免费看 | 99精品国产一区二区三区不卡 | 天天干,天天干 | 97视频免费看 | 国产黄色精品网站 | 在线激情电影 | 一区二区三区日韩视频在线观看 | 亚洲精品视频免费观看 | 亚洲一区二区精品视频 | 婷婷在线网站 | 国产美女免费观看 | 91pony九色丨交换 | 免费网站看av片 | 久久免费在线观看视频 | 日韩乱码中文字幕 | 中文字幕电影在线 | 五月婷婷丁香六月 | 午夜视频一区二区三区 | 欧美日韩一区二区三区在线免费观看 | 成人久久久精品国产乱码一区二区 | 国产成人av片 | 久久精品一区二区国产 | 久久久久色 | 国产精品一区二区三区免费看 | 免费在线观看成人 | 夜夜躁狠狠躁日日躁视频黑人 | www国产亚洲精品 | 91丨九色丨国产在线观看 | 久久影视一区二区 | 99高清视频有精品视频 | 日日爱网址 | 天天干天天干天天干天天干天天干天天干 | 片网站 | 国产精品一区二区在线播放 | 国产经典 欧美精品 | 国产黄在线免费观看 | 亚洲精品99久久久久中文字幕 | 成人毛片在线视频 | 人人爽人人片 | 夜夜躁日日躁狠狠久久88av | 国产精品美女999 | 亚洲天堂香蕉 | 亚洲精品国偷自产在线99热 | 国产精品综合av一区二区国产馆 | 操操操影院 | 国产日韩精品一区二区三区在线 | 麻豆系列在线观看 | 欧美性色黄 | 又湿又紧又大又爽a视频国产 | 天天做天天爱天天爽综合网 | 亚洲成人影音 | 欧美日本不卡高清 | 丁香花在线观看视频在线 | 国产爽妇网 | 91最新视频| 免费观看v片在线观看 | 欧美日韩一区二区三区视频 | 日韩高清精品一区二区 | 激情欧美国产 | 伊人五月天av| 天天操天天干天天 | 午夜色大片在线观看 | www久久com| 久久99国产综合精品免费 | 97国产在线视频 | 久草在线资源观看 | 国产精品永久免费在线 | 国产亚洲精品久久久网站好莱 | 菠萝菠萝在线精品视频 | 六月丁香婷 | 国产精品一区在线播放 | 国产精品99久久久久久久久久久久 | 国产精品美女久久久久aⅴ 干干夜夜 | 九九热视频在线免费观看 |