observe 方法

void observe(
  1. Node target, {
  2. bool? childList,
  3. bool? attributes,
  4. bool? characterData,
  5. bool? subtree,
  6. bool? attributeOldValue,
  7. bool? characterDataOldValue,
  8. List<String>? attributeFilter,
})

观察目标以监视指定的更改。

可选参数的一些要求

  • childList、attributes 或 characterData 必须为 true。
  • 如果 attributeOldValue 为 true,则 attributes 也必须为 true。
  • 如果指定了 attributeFilter,则 attributes 必须为 true。
  • 如果 characterDataOldValue 为 true,则 characterData 必须为 true。

实现

void observe(Node target,
    {bool? childList,
    bool? attributes,
    bool? characterData,
    bool? subtree,
    bool? attributeOldValue,
    bool? characterDataOldValue,
    List<String>? attributeFilter}) {
  // Parse options into map of known type.
  var parsedOptions = _createDict();

  // Override options passed in the map with named optional arguments.
  override(key, value) {
    if (value != null) _add(parsedOptions, key, value);
  }

  override('childList', childList);
  override('attributes', attributes);
  override('characterData', characterData);
  override('subtree', subtree);
  override('attributeOldValue', attributeOldValue);
  override('characterDataOldValue', characterDataOldValue);
  if (attributeFilter != null) {
    override('attributeFilter', _fixupList(attributeFilter));
  }

  _call(target, parsedOptions);
}