我在PhpStorm中与AngularJS
合作。我对两者都不熟悉。
我的项目中有两个文件index.html
和app.js
。从index.html
开始,我引用store.products
中定义的变量app.js
,但PhpStorm告诉我它无法解析变量。
PhpStorm对product.name
没有任何问题。
代码在浏览器中没有问题,所以我认为编辑器一定有问题。或者错误只是浏览器忽略的一个微妙的错误。
index.html
(问题出在ng-repeat指令中):
<!DOCTYPE html>
<html ng-app="gemStore">
<head lang="en">
(...)
</head>
<body ng-controller="StoreController as store">
<ul class="list-group">
<li class="list-group-item" ng-repeat="product in store.products">
<h3>
{{product.name}}
</h3>
</li>
</ul>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.3/angular.min.js"></script>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
app.js
:
(function() {
var app = angular.module('gemStore', []);
app.controller('StoreController', function() {
this.products = gems;
});
var gems = [
...
];
})();
我希望有人能发现错误。即使页面在浏览器中正确呈现,PhpStorm显示错误也很烦人。
修改:在app.js
中this.products
,当我从"unused definition: products"
引用store.products
时,index.html
未标有index.html
。所以不知何故PhpStorm可以看到变量正在被使用,但仍然无法从{{1}}的角度看到它。
答案 0 :(得分:0)
是的,PhpStorm应该能够找到参考。我刚刚在这里进行了测试,并与我的PhpStorm一起工作。
<html ng-app="store">
<body ng-controller="StoreController as store"> <-- store is already app name.
您已将控制器别名和您的应用命名为相同的关键字store
。我认为这让PhpStorm感到困惑。尝试给控制器一个不同的别名。
如果仍然无效,请尝试:
启动PhpStorm,单击“文件/无效缓存”菜单,然后选择“无效并重新启动”。
答案 1 :(得分:0)
我可以在PHPStorm 8 / WebStorm 9 EAP中重新创建该问题。问题是Angular插件没有正确识别Angular 1.2&#39;句法。请投票给WEB-11544