2014-10-10 64 views
3

我對此樹枝模板:如何讓PhpStorm知道一個javascript全局變量被定義?

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

在另一方面,我有initParams.homePage的使用.js文件。問題是PHPStorm認爲我的initParams沒有定義。有沒有辦法將inTwig js變量的定義發送到全局PHPStorm範圍?

提前致謝!

+0

你試了一下嗎? – COil 2015-07-08 17:01:13

回答

10

當使用jslint檢查你的Javascript,你可以使用這樣的事情,以避免錯誤的警告:

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

enter image description here

順便說一句,如果你想在你的JavaScript代碼中使用的路由,你應該看看FOSJsRoutingBundle

1

我剛剛找到了一種避免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不會再抱怨這個常量沒有被定義。

這只是一個把戲,但對我來說效果不錯