对于我的项目,我想为组织组保留一份mongoose文档,如下所示:
var groupSchema = Schema({
name : { type : String },
org : { type : Schema.Types.ObjectId, ref : 'Organization' },
...
users : [{
uid : { type : Schema.Types.ObjectId, ref : 'User' },
...
}]
});
Run Code Online (Sandbox Code Playgroud)
我想阻止同一个用户在同一组中两次.为此,我需要强制users.uid在users数组中是唯一的.我尝试为uid说明'unique:true',但这不起作用.有没有办法用mongoose或mongoDB执行此操作而无需额外查询或拆分架构?
编辑:我将uid的先前值更改为uid:{type:Schema.Types.ObjectId,ref:'User',index:{unique:true,dropDups:true}}但是这似乎仍然不起作用.
编辑:假设没有简单的方法来实现这一点,我添加了一个额外的查询检查用户是否已经在组中.在我看来,这是最简单的方法.
我编写了一个Web应用程序,用户可以使用文本创建svg元素.我想模拟svg元素中的contenteditable元素,以便用户可以动态编辑svg元素的内容.也就是说,当用户单击其中一个元素时,应显示光标以便可以编辑文本.我不想使用foreignobject来实现这一点,因为IE不支持.我在网上找不到任何有用的东西,所以有什么方法可以做到这一点吗?
编辑:澄清一下,这是一个例子:
<svg>
<rect width="192" height="192" style="stroke-width: 3; fill:red"></rect>
<text x="30" y="20">A sample text</text><!-- when the user clicks on this, it should be editable-->
</svg>
Run Code Online (Sandbox Code Playgroud) 我想在用户按下回车键时提交一个文本框的值,最后清除输入。我试过这个代码:
input.keydown(function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$(this).val('');
...
}
Run Code Online (Sandbox Code Playgroud)
输入字段的文本按预期清除,但清除后,仍会在输入中输入换行符。这意味着用户每次发送消息后都必须删除此换行符。除了像设置间隔这样的hack-ish方法之外,有没有办法防止这个换行符出现?