Javascript 尝试使用不存在的 PUG 变量设置变量时出错

Javascript error when trying to set a variable with PUG variable that doesn't exists

我有相同的表单来添加和编辑项目。

我已经像这样从 PUG 向 JAVASCRIPT 传递了一个变量。

script.
  var loadedItem = !{JSON.stringify(loadedItem)};

稍后我会付诸行动

 if (loadedItem) {
   $('select.algs').val(loadedItem.algs).trigger('change');
   $('select.ings').val(loadedItem.ings).trigger('change');
   $('select.spicy').val(loadedItem.spicy).trigger('change');
   $('select.veg').val(loadedItem.veg).trigger('change');
   $('select.cats').val(loadedItem.parent_id).trigger('change');
 }

正如预期的那样,编辑时一切正常。 路由新记录时(不发送和 id 来加载项目), 我收到语法错误 Uncaught SyntaxError: Unexpected token ';'

javascript 看起来像 var loadedItem=;,这很糟糕。 为什么会这样?提前Tnx.

这种情况甚至让我无法处理(不能使用 if 因为它只是 if () 的语法错误)

您可以在此处使用 ternary operator 来检查值,否则输出 null(或空对象或内存中的其他对象):

script.
  var loadedItem = !{ loadedItem ? JSON.stringify(loadedItem) : "null" };