0

現在、jQueryの.loadを使用してモデルを読み込んでいます。正常に読み込まれた後、読み込まれたモデルに依存するJavaScriptを実行したいと思います。

buildFindOrderDialog: function () {
    workflowDialogContent.load('../../csweb/Orders/FindOrderDialog/', function () {
        $.getScript('~/Scripts/FindOrderDialogModel.js');
        workflowDialog.dialog('open');
    });
}

loadメソッドは、ViewModelを返すOrderControllerのFindOrderDialogメソッドを実行します。これがロードされたら、FindOrderDialogModel javascriptを実行して、モデルのクライアント側に影響を与えたいと思います。

上記のコードはjavascriptを正しくロードしません。私は疑問に思っています:私のコントローラーはJavaScriptをロードするためのメソッドを提供する必要がありますか?クライアントには相対パスの概念がありません。

もちろん、スクリプトをFindOrderDialogビューでインライン化することもできます。これにより、ロード後にスクリプトが実行されますが、これはちょっとしたハックのようです。

更新:私の構文は少しずれていました。これは機能します:

buildFindOrderDialog: function () {
    workflowDialogContent.load('../../csweb/Orders/FindOrderDialog/', function () {
        $.getScript('../Scripts/Orders/FindOrderDialogModel.js');
        workflowDialog.dialog('open');
    });
},
4

1 に答える 1

1

私があなたの質問を正しく理解しているなら、どちらかはどうですか

$.getScript('Scripts/FindOrderDialogModel.js');

または、フルパスを指定します。

$.getScript('/My/Full/Path/Scripts/FindOrderDialogModel.js');

または、最後に、ASP.NETを介して相対パスを挿入します。

$.getScript('<%= .NET CODE FOR RETRIEVING PATH USING THE ~ SIGN %>');
于 2012-11-21T20:08:04.173 に答える