【问题标题】:PhpStorm Marks Existing Variable as "Unresolved Variable"PhpStorm 将现有变量标记为“未解析的变量”
【发布时间】:2014-09-25 21:23:15
【问题描述】:

我正在 PhpStorm 中使用 AngularJS。我都是新手。
我的项目中有两个文件,index.htmlapp.js。从index.html,我引用了app.js 中定义的变量store.products,但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 中,当我从index.html 引用store.products 时,this.products 没有标记为"unused definition: products"。所以不知何故 PhpStorm 可以看到该变量正在被使用,但仍然无法从 index.html 的角度看到它。

【问题讨论】:

  • +1 用于 AngularJS 和 PhpStorm。

标签: javascript angularjs phpstorm


【解决方案1】:

是的,PhpStorm 应该能够找到参考。我刚刚在这里测试了它并与我的 PhpStorm 一起工作。

<html ng-app="store">
<body ng-controller="StoreController as store"> <-- store is already app name.

您已将控制器别名和您的应用程序命名为相同的关键字 store。我认为这让 PhpStorm 感到困惑。尝试给控制器一个不同的别名。

如果还是不行,试试这个:

启动PhpStorm,点击菜单“File / Invalidate Cache”并选择“Invalidate and Restart”。

【讨论】:

  • 我尝试重命名我的应用程序(因为这显然是一个错误的名称选择——谢谢),然后使缓存无效。但是,问题仍然存在。我也尝试过创建一个新项目,但没有成功。
  • @MathiasBrandt 你使用的是什么版本的 PhpStorm?
  • 我正在使用 PhpStorm 8.0.1 build #PS-138.2001。
  • @MathiasBrandt 你有插件 AngularJS 版本 138.1988?
  • 是的,我今天刚刚安装了所有东西 :) 我已经尝试继续我正在学习的教程。定义一个新的控制器会带来更多的问题。 PhpStorm 看不到整个新控制器。我怀疑我的 app.js 中有一些根本性的问题......
【解决方案2】:

我可以在 PHPStorm 8/WebStorm 9 EAP 中重新创建问题。问题是 Angular 插件无法正确识别 Angular 1.2 'as' 语法。请投票给WEB-11544

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2020-02-04
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多