0

更新:以下の自己回答を参照してください。これは、「参照パス」ソリューションを必要とするビジュアル スタジオの JavaScript インテリセンスの問題であり、特定のソリューションを提供します。元の質問は間違った方向に進みました。

=======以下の元の質問===========================

VS2013 MVC ビューのさまざまなペインの高さと幅の値を保存および取得するために、以下を作成しました。 PaneDimsオブジェクトの配列 ( pncnfgar) が含まれていpconfigます。表記法PaneDimsを使用するメソッドとパラメーターにアクセスできる、グローバルに使用可能なオブジェクトとして使用したいと思います。記入できるインスタンス化可能なオブジェクトとして使用し、表記法を使用するパラメーターにもアクセスしたいと思います。."."PaneDims.getconfigpconfigPaneDims.getconfig"."wrk_pconfig.id

//=========================

var pconfig = function () {
this.id = ""
this.mh = 0
this.mw = 0
this.lh = 0
this.lw = 0
this.dh = 0
this.dw = 0
}
//========================================
var PaneDims = new function () {
this.currPaneConfig = "";
this.pcnfgar = [];
this.getconfig = function (id) {
    for (i = 0; i < this.pcnfgar.length; i++) {
        if (this.pcnfgar[i].id === id) {
            return this.pcnfgar[i];
        }
    }
}
}
//===================================
function TestPaneDims() {
CreatePaneDimsClass()
SetInitialPanelDims()
}
//====================================
function CreatePaneDimsClass() {
//var PaneDims = new PaneDims;
LoadPanelConfigs();
}
//===========================================

LoadPanelConfigsすべてが機能し、問題ではないため、詳細は省略しました。

問題は、を実行CreatePaneDimsClassした後、別のスクリプト ファイルで、PaneDims を呼び出そうとするとSetInitialPanelDims()

//================================
function SetInitialPanelDims() {

    PaneDims.currPaneConfig = "dh1w1"
    wrkpc = new pconfig
    wrkpc = PaneDims.getconfig(PaneDims.currPaneConfig)

    b = wrkpc.id
    d = wrkpc.mh
    d = wrkpc.mw
}
//===============================

繰り返しますが、これはすべて処理の観点から機能します。

問題は、コードを書いているときに"."値が表示されないことです。たとえば、私は入力しています

b = wrkpc.

pconfigそして、選択するパラメータのリストが表示されることを望みます。

それで、これが可能であると誤解していますか(C#でインテリセンスを食べすぎています)?それとも、私が望むことを実現するために必要な何かが欠けていますか?

UPDATE:関数が他のコードと同じスクリプトファイルにある .場合、参照は機能しますが、異なるスクリプトファイルにある場合は機能しません。SetInitialPanelDims

では、関数が別のスクリプト ファイルで呼び出された.場合、参照を機能させるにはどうすればよいでしょうか。PaneDims

更新:PaneDimsプロトタイプとインスタンス化で作成しようとしました。処理には問題なく動作しますが、コード作成の問題は解決しません

function pPaneDims() { }
pPaneDims.prototype.pcnfgar = [];
pPaneDims.prototype.currPaneConfig;
pPaneDims.prototype.getconfig = function (id) {
    for (i = 0; i < this.pcnfgar.length; i++) {
        if (this.pcnfgar[i].id === id) {
            return this.pcnfgar[i];
        }
    }
}
4

1 に答える 1

0

これは、「参照パス」ソリューションを必要とするビジュアル スタジオの JavaScript インテリセンスの問題のようです。つまり、次のようなコメント行 (3 つのスラッシュ) を追加するには:

/// <reference path="~/Scripts/020_DRAFT/MyScript.js" />

MyScript.js 内のものへのインテリセンス アクセスを必要とする JS ファイルの上部にあります。

きっかけの手がかりはここにありました。

JavaScript と VS2012 インテリセンス

「あるJavaScriptファイルを別のJavaScriptファイルにドラッグする」の意味がわかりませんでしたが、参照文を書くだけでうまくいきました。

C# の "using" ステートメントを思い出します。

VS2010でjavascript IntelliSenseの複数ファイルを参照する方法

http://msdn.microsoft.com/en-us/library/bb385682.aspx

http://gurustop.net/blog/2012/03/03/javascript-js-intellisense-auto_complete-in-visual-studio-11-beta-the-web-_references-js-file/

これにより、この質問は多かれ少なかれ無関係になります。

于 2014-01-28T02:02:48.627 に答える