PageRenderTime 23ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/gallery/form/1.1/demo/form/uploader/extra-config.html

https://github.com/akecn/kissy-gallery
HTML | 99 lines | 92 code | 3 blank | 4 comment | 0 complexity | 5e6444461d23f8d469d33b0d42e77498 MD5 | raw file
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <title>使用额外配置的示例</title>
  6. <link rel="stylesheet" type="text/css" href="http://docs.kissyui.com/kissy-dpl/base/build/css/dpl-pkg.css"/>
  7. <link rel="stylesheet" type="text/css" href="../../assets/demo.css"/>
  8. <script src="http://a.tbcdn.cn/s/kissy/1.2.0/kissy.js" charset="utf-8"></script>
  9. </head>
  10. <body>
  11. <article id="doc">
  12. <h4>使用额外配置的示例</h4>
  13. <p>data-config的配置主要是针对Uploader类有部分是传给Button的比如参数name可以满足基础需求但有些场景你需要有个通道可以把参数直接传给Button或Theme这时该如何处理呢</p>
  14. <p>RenderUploader支持通过增加伪属性的方式额外给子类ButtonQueue传递参数</p>
  15. <p>比如你要给Button传递参数可以增加data-button-config='{}'</p>
  16. <p>来看下面的demo</p>
  17. <!-- 上传按钮组件配置请写在data-config内 -->
  18. <a id="J_UploaderBtn" class="g-u uploader-button"
  19. data-config='{"type" : "ajax",
  20. "autoUpload" : false,
  21. "serverConfig":{"action":"upload.php","data":{"dir":"files/"},"dataType" : "json"},
  22. "name":"fileInput",
  23. "urlsInputName":"fileUrls"}'
  24. data-button-config='{"disabled":true,"name":"Filedata","multiple":false}'
  25. data-theme-config='{"elUploadFiles":"#J_UploadAll"}'
  26. href="#">
  27. 选择要上传的文件
  28. </a>
  29. <!-- 文件上传队列 -->
  30. <ul id="J_UploaderQueue" data-queue-config='{"duration":0.5}'>
  31. </ul>
  32. <div class="btn-wrapper">
  33. <input id="J_Disabled" name="disabled" type="checkbox" value="1" checked />
  34. <label for="disabled">禁用按钮</label>
  35. <input id="J_Multiple" name="multiple" type="checkbox" value="1" />
  36. <label for="multiple">开启多选</label>
  37. <input id="J_UploadAll" type="button" value="上传所有等待的文件">
  38. </div>
  39. <h4>data-button-config</h4>
  40. <p>给选择上传按钮增加几个配置禁用按钮文件上传域名为Filedata禁用多选</p>
  41. <pre class='brush: xml;'>
  42. data-button-config='{"disabled":true,"name":"Filedata","multiple":false}'
  43. </pre>
  44. <h4>data-theme-config</h4>
  45. <p>传递参数给模板有些模板有可定制的参数比如一些按钮的钩子之类的看下面的代码</p>
  46. <pre class='brush: xml;'>
  47. data-theme-config='{"elUploadFiles":"#J_UploadAll"}'
  48. </pre>
  49. 留意在demo代码中并没有给id为J_UploadAll的按钮绑定事件但依旧可以触发文件批量上传那是因为默认模板会监测elUploadFiles参数是否存在在存在的情况下会自动绑定事件
  50. <h4>data-queue-config</h4>
  51. <p>留意这个属性是加在queue对应的目标元素上比如demo中加在id="J_UploaderQueue"的ul上</p>
  52. <pre class='brush: xml;'>
  53. <ul id="J_UploaderQueue" data-queue-config='{"duration":0.5}'>
  54. </ul>
  55. </pre>
  56. <p>demo中配置很简单修改下queue添加和删除文件时动画速度</p>
  57. <p>留意queue有个参数名为statusConfig通过传递这个参数可以控制Status类的配置</p>
  58. </article>
  59. <script>
  60. var S = KISSY,$ = S.Node.all;
  61. S.config({
  62. packages:[
  63. {
  64. name:"gallery",
  65. path:"../../../../../../",
  66. charset:"utf-8"
  67. }
  68. ]
  69. });
  70. //加载上传组件入口文件
  71. KISSY.use('gallery/form/1.1/uploader/index', function (S, RenderUploader) {
  72. //第一个参数:按钮元素钩子,第二个参数:队列元素钩子
  73. var ru = new RenderUploader('#J_UploaderBtn', '#J_UploaderQueue');
  74. //对组件的后续操作务必放在init事件内,因为组件时可能需要异步加载模板
  75. ru.on("init", function (ev) {
  76. var uploader = ev.uploader,
  77. //上传按钮实例
  78. button = uploader.get('button');
  79. $('#J_Disabled').on('change',function(ev){
  80. var isChecked = $(ev.target).prop('checked');
  81. button.set('disabled',isChecked);
  82. });
  83. $('#J_Multiple').on('change',function(ev){
  84. var isChecked = $(ev.target).prop('checked');
  85. button.set('multiple',isChecked);
  86. });
  87. })
  88. })
  89. </script>
  90. <!-- 代码高亮 START -->
  91. <link href='../../assets/syntaxhighlighter_3.0.83/sh.css' rel='stylesheet' type='text/css' />
  92. <script type="text/javascript" src="../../assets/syntaxhighlighter_3.0.83/sh.js"></script>
  93. <script type="text/javascript">SyntaxHighlighter.all();</script>
  94. <!-- 代码高亮 END -->
  95. </body>
  96. </html>