如果我有这个架构......
person = {
name : String,
favoriteFoods : Array
}
Run Code Online (Sandbox Code Playgroud)
... favoriteFoods数组中填充了字符串.我怎样才能找到所有使用猫鼬"寿司"作为他们最喜欢的食物的人?
我希望有类似的东西:
PersonModel.find({ favoriteFoods : { $contains : "sushi" }, function(...) {...});
Run Code Online (Sandbox Code Playgroud)
(我知道$contains在mongodb中没有,只是在了解解决方案之前解释我期望找到的内容)
如果我有一个实用工具函数foo,我希望能够从我的ng-app声明中的任何地方调用.有没有我可以在我的模块设置中使其全局可访问,或者我是否需要将其添加到每个控制器的范围?
我收到来自后端服务器的数据,结构如下:
{
name : "Mc Feast",
owner : "Mc Donalds"
},
{
name : "Royale with cheese",
owner : "Mc Donalds"
},
{
name : "Whopper",
owner : "Burger King"
}
Run Code Online (Sandbox Code Playgroud)
对于我的观点,我想"反转"清单.即我想列出每个所有者,并为该所有者列出所有汉堡包.我可以通过groupBy在过滤器中使用underscorejs函数来实现这一点,然后我将其与ng-repeat指令一起使用:
JS:
app.filter("ownerGrouping", function() {
return function(collection) {
return _.groupBy(collection, function(item) {
return item.owner;
});
}
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<li ng-repeat="(owner, hamburgerList) in hamburgers | ownerGrouping">
{{owner}}:
<ul>
<li ng-repeat="burger in hamburgerList | orderBy : 'name'">{{burger.name}}</li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
这可以按预期工作,但是当使用错误消息"10 $ digest iterations到达"呈现列表时,我得到了一个巨大的错误堆栈跟踪.我很难看到我的代码如何创建一个由此消息隐含的无限循环.有人知道为什么吗?
这是一个带有代码的插件的链接:http://plnkr.co/edit/8kbVuWhOMlMojp0E5Qbs?p …
我有和表达应用程序,并在特定的路径上,我调用一个函数,通过调用res.json数据库文档作为参数,从数据库响应用户.我使用基于promise的库,我想内联回调,我将数据库文档放在响应中.但是当我这样做时,程序失败了.有人可以解释一下原因吗?我也想知道为什么内联电话要console.log实际工作.有两种方法之间的一些根本的区别res.json和console.log?
这是一个有效和无效的例子.假设getUserFromDatabase()返回用户文档的承诺.
//This works
var getUser = function(req, res) {
getUserFromDatabase().then(function(doc) {
res.json(doc);
});
}
//This does not work (the server never responds to the request)
var getUserInline = function(req, res) {
getUserFromDatabase().then(res.json);
}
//This works (the object is printed to the console)
var printUser = function(req, res) {
getUserFromDatabase().then(console.log);
}
Run Code Online (Sandbox Code Playgroud) 我是一名JavaScript开发人员,可以提升我在函数式编程方面的技能.在管理国家时,我最近碰到了一堵墙.在搜索解决方案时,我在各种文章和视频中对状态monad进行了标记,但我很难理解它.我想知道是不是因为我希望它不是.
在Web客户端中,我从后端获取资源.为了避免不必要的流量,我在客户端创建一个包含已经获取的数据的简单缓存.缓存是我的状态.我希望我的几个模块能够保存对缓存的引用并查询它的当前状态,这个状态可能已被另一个模块修改过.
这当然不是javascript中的问题,因为它可以改变状态,但我想学习更多关于函数式编程的知识,我希望状态monad会帮助我.
我以为我可以这样做:
var state = State.of(1);
map(add(1), state);
state.evalState() // => 2
Run Code Online (Sandbox Code Playgroud)
这显然不起作用.国家总是1.
我对状态monad的假设是错误的,还是我只是错误地使用它?
我意识到我可以这样做:
var state = State.of(1);
var newState = map(add(1), state);
Run Code Online (Sandbox Code Playgroud)
...并且newState将是2的状态.但是在这里我并没有真正看到状态monad的使用,因为我将不得不创建一个新实例以便更改值.这对我来说似乎总是在函数式编程中完成,其中值是不可变的.
是否可以使用注释@RequestParam来解析请求中的json格式数据,就像可以解析application/x-www-form-urlencoded编码数据一样?
即如果我的请求机构是:
{ firstName : "John", lastName : "Doe" }
Run Code Online (Sandbox Code Playgroud)
我希望能有一个看起来像的方法
public void savePerson(@RequestParam String firstName, @RequestParam lastName) {
// handle data
}
Run Code Online (Sandbox Code Playgroud)
其中值为firstName"John",值为lastName"Doe".我试图使这项工作,但它只适用于application/x-www-form-urlencoded编码数据.当发送json格式的数据时,我得到一个400回复,说没有参数.
我使用的是Spring 3.2.0 Content-Type,我的请求标题已经与数据格式匹配.
我可以在mongodb中定义一个需要设置某些属性的模式.很像NOT NULL在SQL中.如果可能的话.这是什么语法?
我正在使用node.js和mongoose.mongoose v3.6.15 mongodb v2.4.5
编辑 查尔斯A提供的答案是正确的,但通过文档查看我发现在mongoose中也可以在模式定义中定义一个字段,如下所示:
foo : {
bar : { type : String, required : true }
}
Run Code Online (Sandbox Code Playgroud) 如果我声明了一个带有与ng-submit指令绑定的函数的表单,那么当单击提交按钮但表单无效时,如何防止执行该函数?
我找到了两个有很大缺点的解决方案,因此我不想使用它们:
将表单传递给控制器:
//HTML
<form ng-submit="myFunc($form, model)">
//JavaScript
$scope.myFunc = function($form, model) {
if ($form.$valid) {
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
这很糟糕,因为它将函数与从表单调用的函数联系起来.
当表单无效时,禁用提交按钮.
<input type="submit" ng-disabled="!form.$valid"/>
Run Code Online (Sandbox Code Playgroud)
这很糟糕,因为禁用的元素很难使用.当按钮被悬停或点击时,工具提示不会显示,因此很难向尝试单击禁用按钮的用户提供反馈.
还有另一个解决这个问题的方法吗?
假设我有一个带有一个带有一个或多个参数的构造函数的类.我们还要说这些参数应该是来自用户的一些输入.也就是说,只有在运行时才能在编译时或配置时知道参数.我应该将我的类定义为原型spring bean,还是应该用"new"创建它.
如果我应该将它定义为bean,我该如何传入参数?
Eclipse有一个很好的资源包编辑插件吗?
我正在寻找的主要功能是可以查看不同语言的捆绑包中是否存在相同的密钥.
即如果我有两个文件bundle_en_US.properties并且bundle_sv_SE.properties它们会在键中出现错配,则eclipse会显示错误.
我似乎记得这是Eclipse中的一个默认功能,但我似乎无法让它工作.