2016-11-15 6 views
1

cldr/globalize을 사용하려고했지만 페이지가로드되는 동안 오류가 발생합니다. 전혀 도움이되지 않는 코드를 디버깅페이지로드 중 (cldr, globalize) E_INVALID_PAR_TYPE이 발생했습니다

내가 입력 필드는 추가 정보가 필요하십니까

문제를 생성하는 알아낼 수 없습니다? 더 많은 코드가 필요합니까? 그냥 자바 스크립트로드, 내가


E_INVALID_PAR_TYPE: {"expected":"Plain Object","name":"json","value":null}

자바 스크립트를 알고 '엉'

$(document).ready(function() { 
    // http://stackoverflow.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://stackoverflow.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, 로케일 설정로드 CLDR 데이터를하자

<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&amp;s=1&amp;c=__uvSessionData0&amp;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> 

답변

0

이 문제는 console.log가 인 arguments 안에 항목을 추가한다는 사실에서 기인합니다.

내가하여 버그를 수정 :

  1. 내가 문제를 발견return result[0];
1

이것은 귀하의 슬라이싱과 관련이 있다고 생각합니다 ... null을 반환하는 경우가 있습니다. Globalize.load은 불평하고 있습니다 (예 : {}과 같은 평범한 개체를 기대하지만 대신 null이됩니다).

+0

에 의해return (typeof result === 'undefined' ? null : result[0]);개정, console.log("JSONs loaded")

  • 제거, 나는'행을 제거했다 console.log ("JSON loaded") '문제가 남아 있지만이 오류가 계속 발생합니다.'자바 스크립트 런타임 오류 : E_INVALID_PAR_TYPE : 'value'매개 변수가 잘못되었습니다 (null). 문자열이 예상됩니다. " – Abdelkrim

  • +1

    당신의 응답이'undefined' 인 url에 대해'return (typeof result === 'undefined'? {{} : result [0]); '을 사용하면이 문제를 피할 수 있습니다. 오류가 발생했다는 것을 주장하는 데 적어도 유용합니다. 그러면 어떤 URL이 json을 반환하지 않는지 되돌릴 수 있습니다. –