There is one thing you could do based on Rick's suggestion 
```
append: function(item, ignoreChange) {
  ...
  if (Array.isArray(item)) {
    item.forEach(function(content) {
       this.append(content, true);
    }, this);
    onContentChanged(containsImage);
  } else {
    ... all of the code to append content
    if (!ignoreChange) {
      onContentChanged(item);
    }
  }
}
```
This may fit the requirement.