【问题标题】:Read resource file entry in javascript - MVC application在 javascript 中读取资源文件条目 - MVC 应用程序
【发布时间】:2013-10-18 16:01:20
【问题描述】:

我正在开发一个 MVC 应用程序,我需要读取资源文件并获取值,将它们传递到一个 javascript 文件中。 为此,我只是从 cshtml 文件中调用一个用单独的 js 文件编写的 js 函数。此函数将具有资源文件值的参数传递给 javascript 中的函数。现在在 js 文件中,我在与上述函数相同的命名空间中有另一个函数,我需要在其中读取这些资源文件值。我该怎么做?

我的cshtml代码:

<script type="text/javascript">
Mynamespace.function2("@Globalstrings.Value1","@Globalstrings.Value2");
</script>

JS 文件:

var Mynamespace ={
    function1: function(){
        Mynamespace.function2.getMess();   // I need to access value1 here in this function
    },

    function2: function(message1,message2){
        var value1 = message1;
        var value2 = message2;
        return{
          getMess: function(){ return value1;},
          getLab: function() { return value2;}
        }
    }
}

当我尝试上述方法时,我在 getMess 中变得未定义。 因此,我可以有 2 个选项主要可以作为这个答案:

  1. 在js中读取资源文件值的任何其他方式?
  2. 上述 js 代码的任何修复

我实际上是在几个小时前发布了这个问题(Accessing variable in another function, returns undefined - JavaScript),但它仅限于 javascript 范围问题,但后来意识到我会发布实际问题。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript asp.net-mvc function scope resourcebundle


    【解决方案1】:

    您的返回对象中需要一个逗号来表示设置值。它仍然无法正常工作,但至少可以修复您的语法错误。

    return {
        getMess: function(){ return value1;},
        getLab: function() { return value2;}
    }
    

    另外,在setvalue() 中返回 value1 和 value2 似乎有点奇怪,我可以建议在 getter 中返回值吗?在这个Fiddle中修复和重构了

    【讨论】:

    • 感谢您指出这些事情。对不起,这是一个错误。编辑并更改了函数名称以避免混淆。
    • 你能看到我的小提琴吗?我提出了一些建议。
    • 非常感谢,成功了。 :-) 不过我没什么问题,只是为了更好地理解解决方案并增强我的知识:1)您提供的解决方案需要 2 个不同的功能,一个用于存储值,另一个用于获取它,难道不能以某种方式管理在一个。 2)服务器端语言一般遵循这种解决方案(get,set),如有错误请指正。 js中会不会有类似的模式来写呢。
    • 另外,这是否意味着value1,value2将存在于全局命名空间中,它们是全局变量。
    • 太棒了!很高兴我能帮上忙。 Value1 和 Value2 存储在 Mynamespace 对象中。就 (get,set) 模式而言。 Javascript 中的一些库使用函数中的 arguments 局部变量来根据传入的参数数量来决定要做什么。例如,在 jQuery 中,$('p').text() 是一个 getter,$('p').text('hello!') 是一个 setter。这篇博文详细解释了 arguments 变量 justinbar.net/post/… ,所以你可以用它做一些巧妙的事情。
    猜你喜欢
    • 2012-09-18
    • 2013-12-13
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多