E_INVALID_PAR_TYPE запускается во время загрузки страницы (cldr, globalize)
Мы пытаемся использовать cldr/ globalize, к сожалению, при загрузке страницы возникает ошибка.
Отладка кода не помогает вообще, я не могу понять, какое поле ввода вызывает проблему
Вам нужна дополнительная информация? Вам нужно больше кода? Просто дай мне знать
JavaScript, загрузите данные cldr, установите для языка "en"
$(document).ready(function () {
// http://stackru.com/questions/35863853/using-jquery-globalize-with-mvc-5
// download json files on https://github.com/unicode-cldr?page=2
// how to setup globalize, cldr and json data: http://johnnyreilly.github.io/globalize-so-what-cha-want
var locale = 'en'; // TODO: manage the localization based on user preferences (browser)
// http://stackru.com/questions/32586551/what-is-the-best-way-to-handle-validation-with-different-culture
$.when(
$.getJSON("/Scripts/plugins/cldr-core-30.0.2/supplemental/likelySubtags.json"),
$.getJSON("/Scripts/plugins/cldr-numbers-full-30.0.2/main/" + locale + "/numbers.json"),
$.getJSON("/Scripts/plugins/cldr-core-30.0.2/supplemental/numberingSystems.json"),
$.getJSON("/Scripts/plugins/cldr-core-30.0.2/supplemental/plurals.json"),
$.getJSON("/Scripts/plugins/cldr-core-30.0.2/supplemental/ordinals.json"),
$.getJSON("/Scripts/plugins/cldr-numbers-full-30.0.2/main/" + locale + "/currencies.json"),
$.getJSON("/Scripts/plugins/cldr-core-30.0.2/supplemental/currencyData.json"),
$.getJSON("/Scripts/plugins/cldr-dates-full-30.0.2/main/" + locale + "/ca-gregorian.json"),
$.getJSON("/Scripts/plugins/cldr-dates-full-30.0.2/main/" + locale + "/timeZoneNames.json"),
$.getJSON("/Scripts/plugins/cldr-core-30.0.2/supplemental/timeData.json"),
$.getJSON("/Scripts/plugins/cldr-core-30.0.2/supplemental/weekData.json"),
$.getJSON("/Scripts/plugins/cldr-dates-full-30.0.2/main/" + locale + "/dateFields.json"),
$.getJSON("/Scripts/plugins/cldr-units-full-30.0.2/main/" + locale + "/units.json"),
console.log("JSONs loaded")
).then(function () {
console.log("start slicing");
return [].slice.apply(arguments, [0]).map(function (result) {
console.log("slicing done");
return (typeof result === 'undefined' ? null : result[0]);
});
}).then(Globalize.load).then(function () {
Globalize.locale(locale);
console.log("Locale set to " + locale);
}).then(console.log("LOADED EVERYTHING"));
});
HTML, загрузите JavaScript
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>StratEx | Project management</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700" rel="stylesheet" type="text/css">
<link href="/Scripts/plugins/jquery-ui-1.11.4/jquery-ui.css" rel="stylesheet">
<link href="/Content/font-awesome/css/font-awesome.css" rel="stylesheet">
<link href="/Content/bootstrap-3.3.7/css/bootstrap.css" rel="stylesheet">
<link href="/Content/animate.css" rel="stylesheet">
<link href="/Content/style.css" rel="stylesheet">
<link href="/Content/themes/redmond/jquery-ui-1.10.3.custom.min.css" rel="stylesheet">
<script type="application/javascript" async="" defer="" src="https://by2.uservoice.com/t2/ID/web/ID/track.js?_=TIMESTAMP&s=1&c=__uvSessionData0&d=HASH"></script>
<script type="text/javascript" async="" src="//widget.uservoice.com/CODE.js"></script><script async="" src="//www.google-analytics.com/analytics.js"></script>
<script
src="/Scripts/jquery-2.2.1.js"></script>
<script src="/Scripts/plugins/cldrjs-0.4.7/dist/cldr.js"></script>
<script src="/Scripts/plugins/cldrjs-0.4.7/dist/cldr/event.js"></script>
<script src="/Scripts/plugins/cldrjs-0.4.7/dist/cldr/supplemental.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize/number.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize/plural.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize/message.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize/currency.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize/date.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize/relative-time.js"></script>
<script src="/Scripts/plugins/globalize-1.1.2/dist/globalize/unit.js"></script>
<script src="/Scripts/plugins/jquery-validation-1.15.1/dist/jquery.validate.js"></script>
<script src="/Scripts/plugins/jquery-validation-unobtrusive-3.2.6/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/plugins/jquery-ajax-unobtrusive-3.2.4/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/plugins/jquery-validation-globalize-1.0.0/jquery.validate.globalize.js"></script>
<script src="/Scripts/plugins/jquery-ui-1.11.4/jquery-ui.js"></script>
<script src="/Content/bootstrap-3.3.7/js/bootstrap.js"></script>
</head>
2 ответа
Решение
Проблема заключается в том, что console.log добавляет элемент внутри arguments
который undefined
,
Я исправил ошибку:
- Удаление
, console.log("JSONs loaded")
- исправление
return (typeof result === 'undefined' ? null : result[0]);
отreturn result[0];
Я считаю, что это связано с вашей нарезкой... Есть случай, когда вы вернетесь null
, который является то, что Globalize.load
жалуется на (он ожидает простой объект, например, {}
, но вместо этого это становится null
).