将参数从我的视图(页面)传递到我的js文件

Passing parameters from my view (page) to my js file

本文关键字:我的 js 文件 页面 参数 视图      更新时间:2023-09-26

我问了自己很长时间的一个问题:下面是将参数从视图传递到javascript:的两种方法

方法1:

我的观点:

<script type="text/javascript">
    tabChangeConfirmationTitle = "@Html.Raw(UserResource.Warning)";
    tabChangeConfirmationMessage = "@Html.Raw(UserResource.TabChangeConfirmationMsg)";
</script>

我的javascript文件:

var tabChangeConfirmationTitle;
var tabChangeConfirmationMessage;

方法2:

我的观点:

<script type="text/javascript">
    fctTranslationsForConfirmationDialog("@Html.Raw(UserResource.Warning)", "@Html.Raw(UserResource.TabChangeConfirmationMsg)");
</script>

我的javascript文件:

var tabChangeConfirmationTitle;
var tabChangeConfirmationMessage;
function fctTranslationsForConfirmationDialog(Title, Message) {
    tabChangeConfirmationTitle = Title;
    tabChangeConfirmationMessage = Message;
}

我更喜欢第一种方法。它好吗?有更好的方法吗?

谢谢。

附言:我知道还有其他相关的问题,但我想听听你对这两种方法的看法。

我会选择方法1:的变体

js文件:

var p = {
    tabChangeConfirmationTitle: null,
    tabChangeConfirmationMessage: null
};

在你的html头中:

<script type="text/javascript">
    document.onload = function() {
        p.tabChangeConfirmationTitle = "@Html.Raw(UserResource.Warning)";
        p.tabChangeConfirmationMessage = "@Html.Raw(UserResource.TabChangeConfirmationMsg)"
    };
</script>

这样一来,你的html就不包含那么多javascript了,如果你想添加更多的变量,那么如何添加就非常简单明了了;只需将变量添加到js文件中的p对象中,并在onload处理程序中初始化它。任何其他javascript,然后加载的初始化代码都可以放在js文件中,并且不会被非javascript代码弄得一团糟。

此外,通过使用p对象,您可以创建一个名称空间,并避免使用多个对象污染全局名称空间。