Open KuiShang opened 7 years ago
1. 微信不可以呀,我安卓微信6.5.7,以及Mac微信2.2.1,都是a-z0-9紧跟@是无效的, 必须加空白符或标点。应该是为了无匹配email。 在这个issue里comment里@行为也是一样的。
2. 这里@不区分"at触发的"和"手动输入的",该库旨在消除多余的node节点 (和jquery.atwho的差异), at信息应以单纯的文本形态存储于content中。
实际上不应该区分,不然如果单纯copy/paste消息,at信息就会不一致, 比如我从记事本里粘贴"@某某"到微信中,也是应该唤醒@功能的,刚试了下。
应该是单纯以规则去从content中直接提取at信息,目前这个功能库里没有帮用户存储或提取, 需要用户自己去处理,库只负责把辅助把at信息插入content。
1 看来只有win版的微信,才会a-z0-9紧跟@是有效,不过现在感觉 有空格才出现更合理
2 at取出问题,应该要修改一下这个库的源码才好实现吧, 比如,在data里增加一个数组,保存at成功的name, 当 selectItem 和 handleDelete 时 更新data的值。您觉得这样怎么样?
嗯,vue-at确实可以提供一个方法来直接获取at信息,如:
v-model="atList"
(×)
ref: https://github.com/vuejs/awesome-vue/pull/1028#issuecomment-292839322<at v-model="atList"></at>
感觉这里使用v-model
不合理,因为双向绑定不合理,
如果直接操作atList,编辑器中的text应如何变化?帮用户把所有的@xx
移除掉?
@change="handleAtChange"
(√)<at @change="handleAtChange"></at>
<script>
handleAtChange (data) {
this.atList = data
}
</script>
3 $refs.at.getAtList
(√)
<at ref="at"></at>
<script>
send () {
this.$refs.at.getAtList() // --> [...]
}
</script>
最直接了当,虽然一般不是很建议使用$refs: https://github.com/pablohpsilva/vuejs-component-style-guide#use-thisrefs-with-caution
还有没有其他想法?
暂时木油了,博主强大 O(∩_∩)O
还有一种场景没有考虑:当用户编辑 at的人名时候
这种情况下,如果之前存储了已经at的人名集合,要如何才能将其移除?不知道博主有没有好的解决办法
@KuiShang 噢抱歉哈哈,暂时还没空完善功能, 这个问题没事的,所以不管是1./2.,我原本就打算每次都是直接从完整的content重新匹配出atList, 所以不用担心增减不一致的问题
监听的事件直接是editor的input事件,所以不会错过什么
O(∩_∩)O谢谢
- 微信不可以呀,我安卓微信6.5.7,以及Mac微信2.2.1,都是a-z0-9紧跟@是无效的, 必须加空白符或标点。应该是为了无匹配email。 在这个issue里comment里@行为也是一样的。
- 这里@不区分"at触发的"和"手动输入的",该库旨在消除多余的node节点 (和jquery.atwho的差异), at信息应以单纯的文本形态存储于content中。
实际上不应该区分,不然如果单纯copy/paste消息,at信息就会不一致, 比如我从记事本里粘贴"@某某"到微信中,也是应该唤醒@功能的,刚试了下。
应该是单纯以规则去从content中直接提取at信息,目前这个功能库里没有帮用户存储或提取, 需要用户自己去处理,库只负责把辅助把at信息插入content。
现在可以不输入空格,直接输入at触发面板么?
@raind33 可以的 有一个prop可以控制: https://fritx.github.io/vue-at/#/en/props
<at :avoidEmail="false"><editor /></at>
确实可以,非常感谢!
1 以微信为例,不管前面是不是空格只要输入at,都会触发事件,目前博主这里似乎是前面空格才行。这个能否修复? 2 at后 肯定还是要取出来(发送出去),如何区分出,真正由于at触发的(ex:@小浩)和手动输入的(ex:@123),