我和一位同事一直在争论这个话题大约一个星期.我非常喜欢速记代码,使用三元等,无论我在哪里.最近,他一直在挑剔我使用双重感叹词.在经过多次测试后,我开始同意他的观点......在我的代码中使用双重感叹词可能并不明智.考虑一下:
var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");
Run Code Online (Sandbox Code Playgroud)
上面的示例按预期工作.但是,如果我们检查可能返回undefined的变量,我们会收到错误,尤其是在IE7中.但是,如果我们在控制台中运行它,我们会得到预期的结果:
if(randomvar) alert('Works');
Run Code Online (Sandbox Code Playgroud)
使用此方法,如果变量未定义,则无提示失败.这让我质疑完全使用双重感叹词.是否存在实际上使该运营商受益的情况?
我在我的项目中使用KeystoneJS的Passport身份验证插件.
如果用户帐户存在并且与所使用的社交网络绑定,则一切都很有效.但是,在创建新用户时,使用config选项'auto create user': true,我最终会在oauth回调路由上出现500错误.日志说它是验证错误.
ValidationError: Validation failed
at model.Document.invalidate (/app/node_modules/keystone/node_modules/mongoose/lib/document.js:1021:32)
at /app/node_modules/keystone/node_modules/mongoose/lib/document.js:970:16
at validate (/app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:610:7)
at /app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:627:9
at Array.forEach (native)
at SchemaString.SchemaType.doValidate (/app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:614:19)
at /app/node_modules/keystone/node_modules/mongoose/lib/document.js:968:9
at process._tickCallback (node.js:419:13)
Run Code Online (Sandbox Code Playgroud)
可能是什么导致了这个?
编辑
用户模型:
var keystone = require('keystone'),
Types = keystone.Field.Types,
social = require('keystone-social-login');
/**
* User Model
* ==========
*/
var User = new keystone.List('User');
User.add({
name: { type: Types.Name, required: true, index: true },
email: { type: Types.Email, initial: true, required: true, index: true …Run Code Online (Sandbox Code Playgroud) 我正在使用jScrollPane,因为它是Google上的第一件事,我很累.所以,我首先要说的是我并不反对使用不同的东西.
我有一个2列的部分.右列使用jScrollPane插件并具有固定宽度.拖动滚动条时它可以工作,但鼠标滚轮插件似乎不起作用.我按此顺序调用所有内容:
jquery.jscrollpane.css
jquery.jscrollpane.lozenge.css
jquery.min.js
jquery.mousewheel.js
mwheelIntent.js
jquery.jscrollpane.min.js
Run Code Online (Sandbox Code Playgroud)
标记:
<div class="twocolumn">
<div class="img-lt"></div>
<div class="txt-rt scroll-pane">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是CSS:
#content .twocolumn { overflow:hidden; }
#content .twocolumn .img-lt {
padding-right:22px;
border-right:1px solid #818283;
float:left;
}
#content .twocolumn .txt-rt {
padding-left:22px;
float:left;
width:556px;
height:409px;
}
Run Code Online (Sandbox Code Playgroud)
并且针对页面准备就绪
$(function(){ $('.scroll-pane').jScrollPane(); });
控制台报告没有错误.有什么想法吗?
我一直在谷歌搜索2天,找不到任何确定的东西.我遇到的所有结果都使用了不再有效的弃用代码.请帮忙.
我需要一个按钮点击...
有人可以帮忙吗?
我正在试图解决这个问题时我的头靠在墙上......基本上,我有一个类似于此结构的物体:
results = {
1 : {
url : '/',
matches: {
title : true,
h1 : false,
copy : 2
}
},
2 : {
url : '/?id=2',
matches: {
title : true,
h1 : true,
copy : 0
}
},
3 : {
url : '/id=3',
matches: {
title : false,
h1 : false,
copy : 6
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是自定义搜索的结果集.我需要结果根据对象内的匹配来获得相关性的权重.结果应该像这样排序:
匹配match.title == true的结果是最重要的结果.在此子集中,matches.h1为true,具有最大权重(最顶层),后跟页面副本中出现的次数(matches.copy).
具有matches.h1 == true的结果将在结果视图中显示下一个,按页面副本中出现的次数(matches.copy)排序.
matches.title和matches.h1都为false的结果在matches.copy上按降序排序.
这对当前的对象结构是否可行?或者我是否需要将其拆分并交叉引用每个子集?尔加!它太早了,咖啡不能正常工作:(
编辑:将 结果集转换为对象数组.新结构:
results = [
{ pageid: 1, url: …Run Code Online (Sandbox Code Playgroud) javascript ×2
boolean ×1
facebook ×1
jscrollpane ×1
keystonejs ×1
mongoose ×1
mousewheel ×1
node.js ×1
oauth ×1
object ×1
operators ×1
passport.js ×1
scrollbar ×1
shorthand ×1
sorting ×1