как передать глобальную переменную нескольким функциям в нескольких файлах - PullRequest
0 голосов
/ 26 июля 2011
<script> 
var word = new Array(); word[1] = 'new'; word[2] = 'old';
</script> 

<script src="javascript/validator.js" type="text/javascript"></script>

И в validator.js мы имеем:

function validate(number){ 
  alert(word[number]);
}

Как поймать значение переменной? Я всегда получаю сообщение о том, что переменная не существует.

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Ты почти понял.

Вот как я управлял своим многоязычным сообщением:

Сначала я определил массив в верхней части страницы; как можно ближе к метке HEAD

<script type="text/javascript">
    var resx = {};
</script>

Затем я заполняю массив значениями, используя любой метод, который вы используете, чтобы получить его из базы данных. В этом примере я использую ASP.NET MVC.

<script type="text/javascript"> 
     resx["word1"] = '@Model.word1';    
     resx["word2"] = '@Model.word2';    
     //or you can fill it directly
     resx["word3"] = 'Name';
     resx["word4"] = 'Nombre';
</script>
<script src="javascript/validator.js" type="text/javascript"></script>

Затем вы используете желаемый способ в файле js:

validate(“word2”);
function validate(value){ 
   alert(resx[value]);
}

//Or:
alert(resx[“word3”]);

Надеюсь, это поможет.

0 голосов
/ 27 июля 2011

Во-первых, вероятно, не стоит ссылаться на глобальные переменные между файлами. Другие члены команды или сопровождающие могут сбить их с толку. Я бы предложил всегда передавать все необходимые значения в функцию. Это документирует именно то, что требуется для функции. Попробуйте это,

<script src="javascript/validator.js" type="text/javascript"></script>
<script type="text/javascript"> 
var word = new Array('new', 'old');
validate(word, 0);
</script>

А в validator.js:

function validate(w, n){ 
    alert(w[n]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...