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

时间:2012-03-11 07:49:16

标签: javascript

我问自己很久的一个问题:下面是将参数从我的视图传递到我的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;
}

我更喜欢第一种方法。这是一个好的吗?有更好的方法吗?

感谢。

PS:我知道有其他相关问题,但我希望你对这两种方法有所了解。

1 个答案:

答案 0 :(得分:0)

我会考虑方法1的变化:

js file:

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然后onload初始化代码可以进入你的js文件,它不会被非JavaScript代码混乱。

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