setResolvedAttribute method

  1. @override
void setResolvedAttribute(
  1. T element,
  2. String attrName,
  3. String? attrVal, {
  4. required bool booleanDefault,
  5. required String? valueDefault,
})
override

Sets a value from resolveAttributeValue (used by setAttributes).

A value is set as is. A null attrVal is:

  • for a boolean attribute (selected, checked, disabled…): booleanDefault (true: on, false: off);
  • for any other attribute: valueDefault (null: removed).
// A value, as is:
setResolvedAttribute(option, 'selected', 'true',
    booleanDefault: false, valueDefault: null);
    // option.selected = true

// <option selected="false"> resolves to `null`: off.
setResolvedAttribute(option, 'selected', null,
    booleanDefault: false, valueDefault: null);
    // option.selected = false

// <input checked>, bare: on.
setResolvedAttribute(input, 'checked', null,
    booleanDefault: true, valueDefault: null);
    // input.checked = true

// No `title`: removed, or a default.
setResolvedAttribute(div, 'title', null,
    booleanDefault: false, valueDefault: null);  // no `title`
setResolvedAttribute(div, 'title', null,
    booleanDefault: false, valueDefault: '-');   // title="-"

setAttribute is as booleanDefault: true, valueDefault: null for the boolean attributes set as properties.

Every generator implements it (it has no default: a fallback to setAttribute would turn every false boolean attribute on). See resolveAttributeDefaults.

Implementation

@override
void setResolvedAttribute(
  T element,
  String attrName,
  String? attrVal, {
  required bool booleanDefault,
  required String? valueDefault,
}) => domGenerator.setResolvedAttribute(
  element,
  attrName,
  attrVal,
  booleanDefault: booleanDefault,
  valueDefault: valueDefault,
);