Your search did not match any results.
Html Editor

Mentions

The HtmlEditor allows a user to mention other users in the text. Users that can be mentioned are suggested in a drop-down list that gets its items from the dataSource.

The suggestion list appears when a user enters a specific marker. To mention a user, enter @ in the text field at the bottom and select the user from the list.

Data for mentions can be from multiple data sources. In this case, you can assign an individual marker to each of them.

Copy to CodePen
Apply
Reset
var DemoApp = angular.module('DemoApp', ['dx']); DemoApp.controller('DemoController', function DemoController($scope) { $scope.htmlEditorOptions = { mentions: [{ dataSource: employees, searchExpr: "text", displayExpr: "text" }] }; });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.light.css" /> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js"></script> <script>window.angular || document.write(decodeURIComponent('%3Cscript src="js/angular.min.js"%3E%3C\/script%3E'))</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.7/quill.min.js"></script> <script src="https://cdn3.devexpress.com/jslib/19.2.4/js/dx.all.js"></script> <script src="data.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container" ng-app="DemoApp" ng-controller="DemoController"> <div id="chat-window"> <div class="message dx-theme-background-color"> <div class="photo"> <img src="images/mentions/Kevin-Carter.png" /> </div> <div class="name"> Kevin Carter </div> <div class="date"> 07/03/19 - 12:22AM </div> <div class="text"> <span class="dx-mention" spellcheck="false"><span><span>@</span>John Heart</span></span> What experience do you have in this field? </div> </div> <br /> <div class="message dx-theme-background-color"> <div class="photo"> <img src="images/mentions/John-Heart.png" /> </div> <div class="name"> John Heart </div> <div class="date"> 07/03/19 - 12:25AM </div> <div class="text"> I've been in the audio/video industry since 2001, and I've been the CEO of DevAv since 2009. </div> </div> <br /> <div class="message dx-theme-background-color"> <div class="photo"> <img src="images/mentions/Kevin-Carter.png" /> </div> <div class="name"> Kevin Carter </div> <div class="date"> 07/03/19 - 12:26AM </div> <div class="text"> That's very interesting. <span class="dx-mention" spellcheck="false"><span><span>@</span>Olivia Peyton</span></span>, what do you think? </div> </div> </div> <div dx-html-editor="htmlEditorOptions"> <p> <span class="dx-mention" spellcheck="false" data-marker="@" data-mention-value="Kevin Carter"><span contenteditable="false"><span>@</span>Kevin Carter</span></span> I think John's expertise can be very valuable in our startup. </p> </div> </div> </body> </html>
#chat-window { background-color: rgba(191, 191, 191, 0.15); height: 350px; padding: 10px; } .dx-htmleditor { height: 100px; } #send { float: right; margin: 10px 0px; } .message { height: 85px; background-color: inherit; display: inline-block; max-width: 60%; border-radius: 5px; margin: 5px; padding: 10px; box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1); } .name { font-weight: bold; } .date { opacity: 0.5; } .photo { float: left; height: 100%; } .photo > img { width: 40px; height: 40px; display: block; border-radius: 40px; margin-right: 10px; }
var employees = [{ text: "John Heart", team: "Engineering", icon: "../../../../images/mentions/John-Heart.png" }, { text: "Kevin Carter", team: "Engineering", icon: "../../../../images/mentions/Kevin-Carter.png" }, { text: "Olivia Peyton", team: "Management", icon: "../../../../images/mentions/Olivia-Peyton.png" }, { text: "Robert Reagan", team: "Management", icon: "../../../../images/mentions/Robert-Reagan.png" }, { text: "Cynthia Stanwick", team: "Engineering", icon: "../../../../images/mentions/Cynthia-Stanwick.png" }, { text: "Brett Wade ", team: "Analysis", icon: "../../../../images/mentions/Brett-Wade.png" }, { text: "Greta Sims", team: "QA", icon: "../../../../images/mentions/Greta-Sims.png" }];