我正在为我的应用程序使用node,mocha和chai.我想测试我的返回结果数据属性与我的模型对象之一是"对象类型".(与柴的实例非常相似).我只是想确认这两个对象具有相同的属性名称集.我特别对属性的实际值不感兴趣.
让我们说我有像下面的模型人.我想检查我的results.data是否具有与预期模型相同的属性.所以在这种情况下,Person具有firstName和lastName.
因此,如果results.data.lastName与results.data.firstName同时存在,那么它应该返回true.如果其中任何一个不存在,则应返回false.如果results.data具有任何其他属性(如results.data.surname),那么它将返回false,因为在Person中不存在姓氏.
该模型
function Person(data) {
var self = this;
self.firstName = "unknown";
self.lastName = "unknown";
if (typeof data != "undefined") {
self.firstName = data.firstName;
self.lastName = data.lastName;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个按钮正在执行到我的页面并向查询字符串添加过滤器.我的代码将该过滤器应用于网格...但用户可以删除/编辑该过滤器.由于他们可以看到在网格中应用了什么过滤器,我想在显示页面时从查询字符串中删除?filter = blah.(如果在页面上并且URL显示?filter = columnA最初是正确的,但是用户删除了该过滤器并在columnB上应用了新的过滤器可能会令人困惑....但查询字符串仍然显示?filter-columnA.网格可以处理更改过滤器而无需回发.)我该怎么做?如果你不能删除/更新查询字符串,是否可以解析它然后只是重定向到没有查询字符串的主页?一旦我将过滤器保存到var过滤器,我不再需要它在查询字符串中.
这是显示页面的代码
exports.show = function(req, res) {
var filter = req.query.filter;
if (filter === null || filter === "") {
filter = "n/a";
}
res.render("somepage.jade", {
locals: {
title: "somepage",
filter: filter
}
});
};
Run Code Online (Sandbox Code Playgroud) 我可以找到MVC4应用程序的每个示例都有一次编辑处理一行数据.它显示所有数据行,每行都有一个编辑,可以将您带到另一个页面,并允许您编辑该行.
我想要做的是在行中显示所有数据元素,而不是让用户必须在每一行上单击EDIT,所有行的数据点都已经在用户可以直接更新的文本框中.并且页面上只有一个SAVE可以立即保存所有更新/编辑.
如何设置我的MVC应用程序来支持它?