【问题标题】:What is this.emoji in this example?这个例子中的 this.emoji 是什么?
【发布时间】:2018-10-02 20:54:03
【问题描述】:

我正在尝试这个名为 ngx-emoji-mart 的库,我想在我的输入字段中显示选定的表情符号。我正在阅读文档并发现了这一点。但我无法找到“this.emoji”的含义。所以我有几个问题:

  1. 下面代码中的“this.emoji”是什么以及如何初始化它??

  2. 我认为这是在 div 中显示所选表情符号的解决方案,但是如何在输入字段中显示表情符号带肤色

  3. 如何使用表情符号保存我的聊天记录?

假设用户正在输入字段“Hi John !!,你好吗?”那么我在数据库中保存的最终文本应该是什么?当用户想要查看他的聊天记录时,我将如何正确呈现它? 如果我这样存储我的文本:

嗨约翰! :slightly_smiling_face:, 你好吗?

我将如何在 div 中使用相应的表情符号显示它?我是否需要编写任何指令来搜索诸如“:emoji id:”之类的文本并将其替换为

<ngx-emoji emoji=':santa::skin-tone-3:' size="16"></ngx-emoji>

谢谢。

Display emoji as custom element
// $event is from (emojiClick)
const styles = this.emoji.emojiSpriteStyles($event.emoji.sheet, 'twitter'); // pass emoji sheet
const el = document.createElement('div');
Object.assign(el.style, styles); // apply styles to new element
document.body.appendChild(el);

【问题讨论】:

    标签: angular emoji


    【解决方案1】:

    this 是当前上下文。分别是调用方法的对象,上面部分引用了它的代码。而emoji 分别是上述对象的this 的属性或属性。

    举例说明:

    o = { emoji: '?',
          print: function() {  console.log(this.emoji); };
    
    o.print();
    

    【讨论】:

    • 谢谢Tomás,但我的问题是,在文档中不清楚初始化this.emoji,它是我需要在构造函数中注入的服务..还是它只是组件中的变量我已经初始化了??有什么想法???
    • @Susan 大多数时候在 Angular 中,this 上下文将引用组件类。我找到了你给出的例子,是的 - emoji 的定义没有上下文。在 repo 中搜索被调用的方法名称,它看起来像是 EmojiService:github.com/TypeCtrl/ngx-emoji-mart/… 的属性。所以是的,看起来this.emoji 指的是注入服务。
    • 您很友善,但是重新阅读您的问题,我并没有真正做出任何贡献。我自己不是一个有角的头,我只能猜测:基于@joh04667(谁更重要),您需要创建一个 EmojiService 对象并将其分配给 this.emoji。
    【解决方案2】:

    正如@Tomáš Pospíšek 所说,this 在上下文中指的是“当前”对象。

    在 Angular 中,this 几乎总是指您定义的组件类。

    像这样的第三方包通过提供服务在组件代码中提供功能是很常见的。

    我检查了那个 repo,是的,看起来那个代码示例就在那里,没有很好的文档或提及可注入服务。

    我在 repo 中搜索了被取消的方法emojiemojiSpriteStyles

    看起来它在EmojiService 中。只需注入该服务。

    【讨论】:

    • 工作了..所以第一个问题解决了 :) 谢谢@joh04667。以防万一您对 2 和 3 有任何建议?不过我不能投票:(
    • 2. -> 我很确定不同肤色的表情符号是不同的表情符号。您需要探索现有的表情符号。
    • 这些解决方案需要更熟悉该库——StackOverflow 的目标是成为一个集中的、广泛适用的知识的存储库。诸如此类的一般性问题并不是论坛的真正重点,并且可能会被删除。我是否可以建议您尝试解决这些问题,直到您遇到更具体的问题阻止您实现目标?即您的第三个问题可能归结为“如何将 Unicode 字符转换为 varchar 并将其存储在 SSMS 中?”这些问题遵循指南并得到更多关注。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多