我有一个asp.net-mvc项目,我将这些代码放在其中一个视图中:
<script type="text/javascript">
$(document).ready(function () {
var locations = <%= new JavaScriptSerializer().Serialize(Model.LocationArray) %>;
我想将此代码移动到单独的js文件中(原因与此问题无关)但我意识到我不能因为代码位于&lt; %%&gt;
有关如何将其“注入”单独的js文件的任何建议?
答案 0 :(得分:1)
您可以在其他javascript文件中定义访问此变量。我更喜欢在变量前加上g来表示它是一个全局变量。注意加载你的javascript的顺序。
<Script type="text/javascript">
$(function(){
var gLocation=<%= new JavaScriptSerializer().Serialize(Model.LocationArray) %>;
});
</script>
<script src="scriptWhichUseThisVariable.js"></script>
您也可以将此变量传递给外部javascript文件中编写的函数。
$(function(){
var gLocation=<%= new JavaScriptSerializer().Serialize(Model.LocationArray) %>;
MyFunctionInCustomJSFile(gLocation);
});
确保加载其中定义了函数MyFunctionInCustomJSFile
的javascript文件。还要确保在上面的代码完成执行后执行的代码块内访问它。
答案 1 :(得分:0)
在外部文件运行之前,在本地文件中设置locations
值。由于值是在服务器端填充的,因此您不需要将其嵌套在.ready()
。
答案 2 :(得分:0)
如果是数据而不是代码,一个选项是在运行时通过AJAX加载它。