我有一个twig模板:
<script type="text/javascript">
var initParams = {
homePage: '{{ url('_homepage') }}'
};
</script>
另一方面,我有.js文件,使用initParams.homePage。问题是PHPStorm认为我的initParams没有定义。有没有办法将inTwig js变量的定义发送到全局PHPStorm范围?
提前致谢!
答案 0 :(得分:14)
使用jslint检查Javascript时,可以使用以下内容来避免错误警告:
/*global $, alert, confirm, initParams */
/*jslint browser:true */
$(document).ready(function () {
alert(initParams.homepage);
});
顺便说一下,如果你想在你的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不会再抱怨没有定义常量。
这只是一个技巧,但对我来说效果很好