How to Use Trix Editor With Phoenix LiveView: Difference between revisions
From ElixirBlocks
No edit summary |
|||
| Line 7: | Line 7: | ||
<source> | <source> | ||
let liveSocket = new LiveSocket("/live", Socket, { | |||
params: { | |||
_csrf_token: csrfToken | |||
}, | |||
hooks: { | |||
TrixEditor: { | |||
mounted() { | |||
let | let element = document.querySelector("trix-editor"); | ||
this.ele = element | |||
this.ele.value = "data in the value attribute"; | |||
this.ele.addEventListener("trix-change", (e) => { | |||
console.log(e.target.value) | |||
this.pushEvent('zap', { | |||
payload: e.target.value | |||
}); | |||
}); | |||
} | |||
} | |||
} | |||
}) | }) | ||
</source> | </source> | ||
==LiveView== | ==LiveView== | ||
Revision as of 17:15, 21 June 2023
This page is in progress
To integrate Trix editor we use a JavaScript Hook
JavaScript Hook
let liveSocket = new LiveSocket("/live", Socket, {
params: {
_csrf_token: csrfToken
},
hooks: {
TrixEditor: {
mounted() {
let element = document.querySelector("trix-editor");
this.ele = element
this.ele.value = "data in the value attribute";
this.ele.addEventListener("trix-change", (e) => {
console.log(e.target.value)
this.pushEvent('zap', {
payload: e.target.value
});
});
}
}
}
})
LiveView
<div phx-hook="TrixEditor" id="xyz">
<div id="richtext" phx-update="ignore">
<trix-editor class="trix-content"></trix-editor>
</div>
</div>