为什么我的咖啡脚本没有检测到某个元素不存在?

Why is my coffee script not detecting that an element isn't present?

我正在使用 Rails 5. 我有以下咖啡脚本...

  query_data_val = $.query.get('order_by')
  alert(query_data_val)
  if !query_data_val?
    ...
  else
    alert("branch 2")

我注意到,即使我的 URL 的查询字符串中没有 "order_by=",上面的计算结果也是 brnach 2,尽管我希望它的计算结果是"if" 语句。第一个警告对话框中没有打印出任何内容。那么在咖啡脚本中检查参数是否丢失或为空的正确方法是什么? (请注意,我还希望 "order_by=&otehr_param=abc" 计算第一个分支,因为没有为 "order_by" 提供任何值)。

您似乎认为 ? 的工作方式与 Rails 中的 present? 相同。但它 returns 为真,除非变量为空或未定义。我想 get 返回一个空字符串,这将是真实的。

尝试:

if query_data_val?.length
  alert 'present' + query_data_val
else
  alert 'not present'