PHPStorm/WebStorm 中 Angularjs 的代码突出显示
Code Highlighting in PHPStorm/WebStorm for Angularjs
在我的控制器中,我定义了一个函数:
var ProductListingHeaderController = function (FilterService, CategoryService) {
this.isCategorySet = function () {
return (FilterService.categoryID);
};
this.categoryName = function () {
return (CategoryService.categoryName());
};
};
IDE(通过代码突出显示)报告 categoryName() 正在使用,而 isCategorySet() 未使用。
这是可以理解的,因为:
categoryName() 在 html 文件中的 {{ }}
中使用:
<h2>{{productListingHeader.categoryName()}}</h2>
并且 isCategorySet() 在 ng-if 字符串中使用:
ng-if="productListingHeader.isCategorySet()"
鉴于这是如此常见的用法,我怀疑我可能在 Storm 中遗漏了一个关于如何设置的设置,以便 Angular 指令的这种用法(在字符串中)被选为 "used".
提前感谢您的任何反馈。
这是 PHP/WebStorm 的正常行为。
Template -> JavaScript 实际上只是一个模棱两可的联系。 AngularJS 模板中不支持 jsDoc 类型推断。因此 PHP/WebStorm 将匹配对 JavaScript 的模板函数调用,前提是该函数名称是唯一的。
PHP/WebStorm 在将闭包方法推断为对象函数时存在问题。我使用 AngularJS 控制器的原型声明取得了更大的成功。
var ProductListingHeaderController = function (FilterService, CategoryService) {
this.filterService = FilterService;
this.categoryService = CategoryService;
}
ProductListingHeaderController.prototype.isCategorySet = function () {
return (this.filterService.categoryID);
};
ProductListingHeaderController.prototype.categoryName = function () {
return (this.categoryService.categoryName());
};
将上面的代码与你的代码进行比较,看看WebStorm中探索的结构。当您为控制器使用原型时,它们会正确显示在资源管理器中。
在我的控制器中,我定义了一个函数:
var ProductListingHeaderController = function (FilterService, CategoryService) {
this.isCategorySet = function () {
return (FilterService.categoryID);
};
this.categoryName = function () {
return (CategoryService.categoryName());
};
};
IDE(通过代码突出显示)报告 categoryName() 正在使用,而 isCategorySet() 未使用。
这是可以理解的,因为:
categoryName() 在 html 文件中的 {{ }}
中使用:
<h2>{{productListingHeader.categoryName()}}</h2>
并且 isCategorySet() 在 ng-if 字符串中使用:
ng-if="productListingHeader.isCategorySet()"
鉴于这是如此常见的用法,我怀疑我可能在 Storm 中遗漏了一个关于如何设置的设置,以便 Angular 指令的这种用法(在字符串中)被选为 "used".
提前感谢您的任何反馈。
这是 PHP/WebStorm 的正常行为。
Template -> JavaScript 实际上只是一个模棱两可的联系。 AngularJS 模板中不支持 jsDoc 类型推断。因此 PHP/WebStorm 将匹配对 JavaScript 的模板函数调用,前提是该函数名称是唯一的。
PHP/WebStorm 在将闭包方法推断为对象函数时存在问题。我使用 AngularJS 控制器的原型声明取得了更大的成功。
var ProductListingHeaderController = function (FilterService, CategoryService) {
this.filterService = FilterService;
this.categoryService = CategoryService;
}
ProductListingHeaderController.prototype.isCategorySet = function () {
return (this.filterService.categoryID);
};
ProductListingHeaderController.prototype.categoryName = function () {
return (this.categoryService.categoryName());
};
将上面的代码与你的代码进行比较,看看WebStorm中探索的结构。当您为控制器使用原型时,它们会正确显示在资源管理器中。