InputSetter

原文:https://docs.gitlab.com/ee/development/fe_guide/droplab/plugins/input_setter.html

InputSetter

InputSetter是一个插件,当单击列表项时,该插件允许在 droplab 范围之外更新 DOM.

Usage

InputSetter对象添加到DropLab.prototype.initDropLab.prototype.addHook调用的插件数组中.

  • InputSetter需要inputvalueAttribute的配置值.
  • input应该是要操作的 DOM 元素.
  • valueAttribute应该是一个字符串,它是列表项上属性的名称,用于获取用于更新input元素的值.

您还可以将InputSetter配置设置为对象数组,这将允许您更新多个元素.

  1. <input id="input" value="">
  2. <div id="div" data-selected-id=""></div>
  3. <input href="#" id="trigger" data-dropdown-trigger="#list">
  4. <ul id="list" data-dropdown data-dynamic>
  5. <li><a href="#" data-id="{{id}}">{{text}}</a></li>
  6. <ul>
  1. const droplab = new DropLab();
  2. const trigger = document.getElementById('trigger');
  3. const list = document.getElementById('list');
  4. const input = document.getElementById('input');
  5. const div = document.getElementById('div');
  6. droplab.init(trigger, list, [InputSetter], {
  7. InputSetter: [{
  8. input: input,
  9. valueAttribute: 'data-id',
  10. } {
  11. input: div,
  12. valueAttribute: 'data-id',
  13. inputAttribute: 'data-selected-id',
  14. }],
  15. });
  16. droplab.addData('trigger', [{
  17. id: 0,
  18. text: 'Jacob',
  19. }, {
  20. id: 1,
  21. text: 'Jeff',
  22. }]);

上方,如果第二个列表项被单击,它将更新#input元素的value 1 ,还将更新#div元素的data-selected-id1 .

(可选)您可以将inputAttribute设置为一个字符串,该字符串是您要更新的input元素上的属性的名称. 如果你不提供inputAttributeInputSetter将更新value的的input ,如果它是一个元素INPUT元素,或者textContent的的input因素,如果它不是一个INPUT元素.