如何让PhpStorm知道Javascript全局变量已定义?

6

我有一个twig模板:

<script type="text/javascript">
  var initParams = {
    homePage: '{{ url('_homepage') }}'
  };
</script>

另一方面,我有一个使用initParams.homePage的.js文件。问题是PHPStorm认为我的initParams未定义。有没有办法将inTwig js变量的定义发送到全局PHPStorm范围?

提前感谢!

2个回答

17

使用jslint检查JavaScript时,你可以使用类似以下代码来避免虚假警告:

/* global $, alert, confirm, initParams */
/* jslint browser:true */
$(document).ready(function () {
    alert(initParams.homepage);
});

在此输入图片描述

顺便提一下,如果你想在你的JavaScript代码中使用路由,你应该看一下FOSJsRoutingBundle


2

我刚找到一种避免Phpstorm对HTML文件中定义的全局JavaScript变量“未解决变量”抱怨的方法。

例如,如果你有这个全局变量:

<script type="text/javascript">
  var initParams = {
    homePage: '{{ url('_homepage') }}'
  };
</script>

然后,在另一个js项目文件中(例如:phpstorm_definitions.js),声明一个“虚假”的变量,像这样:

/* fake variables: used only to avoid phpstorm's complaints */
var initParams = {};
var initParams.homePage = '';   

如果文件在您的项目文件夹内,您不需要在任何地方包含文件phpstorm_definitions.js。现在,您可以在所有其他文件中使用您的常量,而phpstorm将不再抱怨该常量未定义。
这只是一个技巧,但对我很有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接