converse.js chatBoxInitialized 事件什么时候实际发出?
When does converse.js chatBoxInitialized event actually emit?
我正在尝试在 converse.js 聊天框(标题、删除头像、聊天框宽度)之前配置一些设置 "rendering" 并显示聊天框。
虽然没有明确说明,但我认为 "chatBoxInitialized" 事件会在创建聊天框 object 之后,但在呈现和显示之前触发。
我发现当调用该事件的处理程序函数时,聊天框已经显示,很明显我对 "chatboxinitialized" 的理解是不完整的。在处理程序中,我使用了聊天框 object 中可用的方法,例如
chatbox.setChatBoxWidth(350);
chatbox.model.attributes.fullname = data;
设置聊天框属性,但是当语句执行并产生瞬间效果时,一旦处理函数完成,某些东西就会将这些值设置回来,并且框 "re-renders" 并显示为我之前的状态函数 运行.
是否有更合适的事件可以注册以便在聊天框呈现之前设置这些值?是否有更合适的 "chatbox set functions" 可以用来正确设置诸如大小之类的东西,并关闭头像,而不是直接进入 DOM 并在事后进行操作?
如有任何帮助,我们将不胜感激。
如果您查看代码,您会看到 chatBoxInitialized
在 聊天框的 HTML 已经呈现后 被触发。
查看代码,我没有看到在创建聊天框之后但在呈现之前触发的任何事件。
但是,在converse.js当前的主分支(即将发布)中,您可以在创建聊天框后设置全名,它将然后正常出现。
不过你设置错了。对于 Backbone.js,您必须使用 get
和 set
而不是 attributes
属性.
所以这个:
chatbox.model.attributes.fullname = data;
必须改成这样:
chatbox.model.set({'fullname': data});
关于设置聊天框宽度,我认为最好的方法是设置相关的 Sass 变量,参见此处:
然后运行make css
生成新的CSS.
我正在尝试在 converse.js 聊天框(标题、删除头像、聊天框宽度)之前配置一些设置 "rendering" 并显示聊天框。
虽然没有明确说明,但我认为 "chatBoxInitialized" 事件会在创建聊天框 object 之后,但在呈现和显示之前触发。
我发现当调用该事件的处理程序函数时,聊天框已经显示,很明显我对 "chatboxinitialized" 的理解是不完整的。在处理程序中,我使用了聊天框 object 中可用的方法,例如
chatbox.setChatBoxWidth(350);
chatbox.model.attributes.fullname = data;
设置聊天框属性,但是当语句执行并产生瞬间效果时,一旦处理函数完成,某些东西就会将这些值设置回来,并且框 "re-renders" 并显示为我之前的状态函数 运行.
是否有更合适的事件可以注册以便在聊天框呈现之前设置这些值?是否有更合适的 "chatbox set functions" 可以用来正确设置诸如大小之类的东西,并关闭头像,而不是直接进入 DOM 并在事后进行操作?
如有任何帮助,我们将不胜感激。
如果您查看代码,您会看到 chatBoxInitialized
在 聊天框的 HTML 已经呈现后 被触发。
查看代码,我没有看到在创建聊天框之后但在呈现之前触发的任何事件。
但是,在converse.js当前的主分支(即将发布)中,您可以在创建聊天框后设置全名,它将然后正常出现。
不过你设置错了。对于 Backbone.js,您必须使用 get
和 set
而不是 attributes
属性.
所以这个:
chatbox.model.attributes.fullname = data;
必须改成这样:
chatbox.model.set({'fullname': data});
关于设置聊天框宽度,我认为最好的方法是设置相关的 Sass 变量,参见此处:
然后运行make css
生成新的CSS.