【问题标题】:Code completion not recognizing members from OpenLayers js file代码完成无法识别 OpenLayers js 文件中的成员
【发布时间】:2012-07-12 07:43:48
【问题描述】:

我有一个 Visual Studio 2010 ASP.NET MVC 4 项目。在一个视图中,我正在导入OpenLayers.js 文件:

<script type="text/javascript" src="path/to/OpenLayers.js"></script>

下面,我有一个内联脚本:

<script type="text/javascript">
    function init()
    {
        var map = new OpenLayers.Map("basicMap");
        var osmLayer = new OpenLayers.Layer.OSM(/* constructor params */);
    }
</script>

如何让 Visual Studio / ReSharper IntelliSense 建议如下属性和方法名称:

osmLayer.w   // should suggest osmLayer.wrapDataLine
osmLayer.att // should suggest osmLayer.attribution

奇怪的是,它建议由 JQuery 定义的成员:constructorprototypelength 都出现在完成下拉列表中。

【问题讨论】:

    标签: javascript asp.net-mvc visual-studio-2010 resharper intellisense


    【解决方案1】:

    不幸的是,ReSharper 的 javascript intellisense 并不完美,目前不支持非标准的 JS 类框架,例如 OpenLayers 使用的框架。我们计划在未来的版本中解决这个问题。同时,如果您必须使用此类库,您可以通过按 Ctrl-Space 使用非智能智能感知或尝试使用 Visual Studio 内置智能感知(转到 ReSharper | 选项 -> 环境 | 智能感知 | 常规,选择“Limited ReSharper Intellisense”并关闭 JavaScript)。

    【讨论】:

    • 感谢您的回答。我试过了,但 Visual Studio IntelliSense 没有提供比 ReSharper 更多的自动完成选项......我做错了吗?
    • 好吧,也许 Visual Studio 需要正确的引用指令,请参阅此处msdn.microsoft.com/en-us/library/…。但可能是 VS 也不支持您的情况。为动态语言(如 JS)实现智能感知很困难。无论如何,使用 ReSharper,您始终可以手动按 Ctrl-Space 并获取所有可能的 JS 属性。
    猜你喜欢
    • 2020-02-11
    • 2015-01-13
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    相关资源
    最近更新 更多