我目前正在用jQuery的.load加载一个模型。成功加载后,我想执行一些依赖于加载模型的 JavaScript。
buildFindOrderDialog: function () {
workflowDialogContent.load('../../csweb/Orders/FindOrderDialog/', function () {
$.getScript('~/Scripts/FindOrderDialogModel.js');
workflowDialog.dialog('open');
});
}
load 方法执行 Order Controller 的 FindOrderDialog 方法,该方法返回 ViewModel。加载后,我想运行我的 FindOrderDialogModel javascript 来影响模型客户端。
上面的代码没有正确加载javascript。我想知道:我的控制器是否必须提供加载 javascript 的方法?客户端没有相对路径的概念。
当然,我可以将脚本与 FindOrderDialog 视图内联,这会导致它在加载后执行,但这似乎有点黑客。
更新:我的语法有点不对劲。这有效:
buildFindOrderDialog: function () {
workflowDialogContent.load('../../csweb/Orders/FindOrderDialog/', function () {
$.getScript('../Scripts/Orders/FindOrderDialogModel.js');
workflowDialog.dialog('open');
});
},
如果我正确理解你的问题,那么要么怎么样
$.getScript('Scripts/FindOrderDialogModel.js');
或者指定完整路径:
$.getScript('/My/Full/Path/Scripts/FindOrderDialogModel.js');
或者最后,通过 ASP.NET 注入相对路径:
$.getScript('<%= .NET CODE FOR RETRIEVING PATH USING THE ~ SIGN %>');