我有一个使用 javascript 捆绑的 MVC 4 项目。
在我的 _Layout.cshtml
页面中,我有这样的内容:
@Scripts.Render("~/bundles/scripts/desktop/modernizr",
"~/bundles/scripts/desktop/jquery","~/bundles/scripts/desktop/jqueryui",
"~/bundles/scripts/desktop/jqueryvalidation", "~/bundles/scripts/custom")
还有其他的,但这只是一个例子。在自定义脚本中调用的一个脚本中,我需要引用在就绪函数中设置的全局变量,如下所示:
<script type="text/javascript">
$(function () {
//alert('Page is ready!');
var warning = 10;
var timeout = 20; }); </script>
问题是,我似乎总是在需要警告和超时变量的方法中遇到错误。关于我应该如何创建这些变量,我是否遗漏了一些明显的东西(但对我来说不是!)?我是否应该在 $Ready
之外 var
它们,因为 js 在页面技术准备就绪之前加载?
如果一切都已经在渲染包中并且没有脚本 block ,那么全局变量应该放在哪里?
谢谢!
最佳答案
warning
和timeout
变量不是全局的。它们仅在您提供给 $
函数的函数中定义。
我通常建议尽可能避免全局变量,但如果你真的想创建全局变量,只需使用这个:
<script type="text/javascript">
var warning = 10;
var timeout = 20;
</script>
或者这个:
<script type="text/javascript">
$(function () {
window.warning = 10;
window.timeout = 20;
});
</script>
关于使用 Scripts.Render MVC4 时的 Javascript 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20862900/