首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查请求中是否有Total.js控制器中的post数据

如何检查请求中是否有Total.js控制器中的post数据
EN

Stack Overflow用户
提问于 2014-08-21 18:04:15
回答 2查看 1.4K关注 0票数 1

我想要一个解决方案,通过验证用户是否提交了一些数据,来保持视图和在同一个函数上发布操作。

我的total.js控制器是这样的

代码语言:javascript
复制
# framework
exports.install = (framework) ->
  framework.route "/subscribe", subscribe
  framework.route "/subscribe", subscribe, ['post']

# subscribe form and action
subscribe = ->
  self = this
  post = self.post

  if post
    Subscriber = self.model('subscriber')
    Subscriber.save post

  self.view "form"

问题是,当我只是查看页面(而不是数据)时,post{},所以它总是进入if

如果与{} (if post isnt {})相比,条件总是假的,可能是因为self.post不是空对象。

更新

  • 查看页面时: console.log post #logs {}
  • 在递交表格时: console.log post #logs { type: 1,电子邮件:"email@example.com“}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-22 20:06:29

您不清楚地了解is/isnt。看看这个例子:

代码语言:javascript
复制
coffee> {} is {}
false

令人惊讶?如果您知道is测试是两个变量,则不会引用同一个对象。不完全一样。实际上是同一个对象:

代码语言:javascript
复制
coffee> obj1 = {}
{}
coffee> obj2 = obj1
{}
coffee> obj1 is obj2
true

然后,您可以转到==,以测试等效性。但是:

代码语言:javascript
复制
coffee> {} == {}
false

很不幸,JavaScript does not provide a easy way to test for

在你的情况下,你应该采取一些诡计。比如:

代码语言:javascript
复制
if (i for i in post).length == 0
  ...

或者可能检查某个关键字段的存在:

代码语言:javascript
复制
if 'type' not of post
  ...
票数 3
EN

Stack Overflow用户

发布于 2014-11-25 13:53:38

简单检查:

代码语言:javascript
复制
function some_action_in_controller() {
    var self = this;
    // self.body is same as self.post
    var isEmpty = Object.keys(self.body).length === 0);
    self.json({ result: isEmpty }); 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25433073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档