如何让PhpStorm知道定义了一个javascript全局变量?

时间:2014-10-10 07:37:25

标签: javascript symfony twig phpstorm

我有一个twig模板:

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

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

提前致谢!

2 个答案:

答案 0 :(得分:14)

使用jslint检查Javascript时,可以使用以下内容来避免错误警告:

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

enter image description here

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

答案 1 :(得分:1)

我刚刚找到了一种方法来避免使用phpstorm&#34;未解决的变量&#34;关于在HTML文件中定义的全局javascript变量的投诉。

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

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

然后,在另一个js项目文件(例如: phpstorm_definitions.js )上,声明一个&#34; fake&#34;像这样的变量:

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

如果文件在项目文件夹中,则不需要在任何地方包含 phpstorm_definitions.js 文件。现在你可以在所有其他文件中使用你的常量,而phpstorm不会再抱怨没有定义常量。

这只是一个技巧,但对我来说效果很好