处理JavaScript中不存在的变量

时间:2016-03-14 11:51:08

标签: javascript mustache

我使用下面的胡子从一些PHP代码加载一个属性:

PHP:

$data['foo'] = getFooAsJSON();

JavaScript的:

var bar = <%&foo%>;

这里的问题是当&lt;%&amp; foo%&gt;有时候不存在,所以JS变成了:

var bar = ;

抛出语法错误。我想将条形指定为null作为后备,但假设<%&foo%>没有返回任何内容,我不确定如何在不调用语法错误的情况下执行此操作。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

名称getFooAsJSON表明它返回JSON,这是一种文本符号,因此返回一个字符串。该字符串不能为空并且是有效的JSON;它必须包含某些东西

如果没有任何内容可以返回,我建议返回"null",这是有效的JSON,因此也是有效的JavaScript。然后你最终得到了

var bar = null;

...在您的JavaScript中。

答案 1 :(得分:0)

您可以为PHP请求设置默认参数。

PHP v5.3及更高版本

$data['foo'] = getFooAsJSON() ?: 'null';

PHP v5.2及更低版本

$jsonData = getFooAsJSON();

$data['foo'] = $jsonData ? $jsonData : 'null';

感谢T.J. Crowder有关有效JSON的说明。