[5.0] Allow passing of DOM nodes to setContent #13469
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Brief Information
This pull request is in the type of:
What does this PR do?
Allows Tooltip to be set with array of DOM Nodes instead of HTML string.
Fixed issues
Details
Before: What was the problem?
When the tooltip is set, you could only pass static HTML content. I am developing an Angular app. Angular – like other web frameworks (e.g Vue, React) – has its own template mechanism to generate DOM nodes and retain control over their contents, to update them dynamically. However, I could not leverage my framework inside echarts tooltip.
After: How is it fixed in this PR?
A non-framework approach is shown in the test file
tooltip-domnode.html
. That tooltip shows the continuously updating current date.In my Angular project. I can return
this.viewContainerRef.createEmbeddedView(template, context).rootNodes
from theEChartOption.Tooltip.Formatter
and my tooltip content will be updated in Angular's lifecycle mechanism.Usage
Are there any API changes?
Previously this was the Formatter interface in Typescript:
Now it is this:
Related test cases or examples to use the new APIs
tooltip-domnode.html
Others
Merging options
Other information