Custom component used as HTML in block
Question
I've extended the default image component
export default (editor) => {
const domComponents = editor.DomComponents;
const imageType = domComponents.getType('image');
domComponents.addType('image-extended', {
model: imageType.model.extend({
defaults: Object.assign({}, imageType.model.prototype.defaults, {
name: 'Image Extended',
})
},
{
isComponent(el) {
if (el.tagName === 'img' && el.classList && el.classList.contains('img-extended')) {
return {type: 'image-extended'};
}
}
}),
view: imageType.view
});
};
Then I've got a block where I'm going to use the extended image. The following works fine.
export default (editor) => {
let bm = editor.BlockManager;
bm.add('ImageExtended').set({
label: 'Image Extended',
category: 'Layout',
attributes: {class: 'fa fa-image'},
content: {
type: 'image-extended',
classes: ['img-extended'],
},
});
};
However, this block will contain nested HTML (kind of a card) and one of the childs needs to be this custom image component. Using the following the img element is not recognized as my custom image component.
export default (editor) => {
let bm = editor.BlockManager;
bm.add('Card').set({
label: 'Card',
category: 'Layout',
attributes: {class: 'fa fa-image'},
content: '<div class="card"><img class="img-extended"></div>',
});
};
Answers (2)
el.tagName === 'IMG'
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Related Questions and Answers
Continue research with similar issue discussions.
Issue #1959
[Question] Edit innerHTML in a custom button
Hi All, I am trying to change the text in a button component, but I am not able to edit it. I added this type: I included the editable: tru...
Issue #738
image reverted to original size after resized
hi, i got a strange issue with component: i got 2 types, image and icon the issue is when i first drag and drop the image component, i'm ab...
Issue #665
Custom component and save
Sorry, me again ! I'm trying to save my template with my new component "img-link" : But when I save my template using the gjs-get-inlined-h...
Issue #1044
change src for image element in model
hello when a image block drop to editor i hide the default asset manager and display my custom asset manager: fot this i have no problem.bu...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.