2017-02-10 3 views
-1

끝에이 스크립트가 포함 된 웹 사용자 컨트롤이 있습니다.require.js에서 새로 고치지 않고 스크립트가로드되지 않습니다.

<script> 
    require(['modules/product'], function (_s) { 
     new _s(); 
    }); 
</script> 

product.js 파일과 product.js을로드 할 내가 마스터 페이지 또는이 스크립트

<%if (Sitecore.Context.PageMode.IsNormal){ %> 
<script type="text/javascript" src="/js/vendor/modernizr.js"></script> 
<script type="text/javascript" src="/js/vendor/require.js"></script> 
<script type="text/javascript" src="/js/main.js"></script> 
<%} else { %> 
<script> 
    function require() { }; 
    function define() { }; 
</script> 

RequireJS 구성을 포함하는 기본 페이지가이

define(["jquery", "async!https://maps.googleapis.com/maps/api/js?key=something", "validate", "validate.add"],function ($) {--some code---} 

과 같이 정의된다 이런 식이다

require.config({ 
baseUrl: "/js", 
waitSeconds: 0, 
paths: { 
    async: 'vendor/async', 
    jquery: 'vendor/jquery-1.11.3.min', 
    'jquery.ui': 'vendor/jquery-ui', 
    dropdown: 'vendor/dropdown', 
    sharebutton: 'vendor/buttons', 
    tooltip: 'vendor/tooltip', 
    easyzoom: 'vendor/easyzoom', 
    validate: 'vendor/jquery.validate.min', 
    'validate.add': 'vendor/additional-methods', 
    swipe: 'vendor/jquery.touchSwipe', 
    browser: 'modules/browser', 
    moment: 'vendor/moment' 
} 

}};

하지만이 product.js 파일은 처음에는 로딩되지 않지만 페이지를 수동으로 새로 고친 후에 정상적으로 작동합니다.

도움이 될 것입니다. 나는 requirejs 또는 스크립팅 언어에 매우 익숙하다.

+0

당신이 보여준 것보다 더 많은 정보를 제공해야합니다. 새로 고침을 통해 해결 된 문제는 대개 잘못된 RequireJS 구성 또는 잘못된 시작 시퀀스로 인해 발생합니다. 질문을 편집하여 RequireJS 구성을 표시하고 HTML에서와 같은 순서로'script' 요소를 표시하십시오. 독자는 모듈 로딩을 시작하는 방법을 명확하게 볼 수 있어야합니다. 궁극적으로 [mcve]를 목표로해야합니다. – Louis

+0

당신은 아직'script' 요소를 사용하지 않았습니다. (당신은 단지 * 하나만 보여주고 있습니다. 충분하지 않습니다.) 그들은 당신의 응용 프로그램을 시작하는데 결정적입니다. 제대로 설정하지 않으면보고하는 문제가 발생할 수 있습니다. – Louis

+0

안녕하세요 @ 루이스 사용자 컨트롤이 렌더링되는 마스터 페이지에 포함 된 더 많은 스크립트를 추가했습니다. –

답변

-1

봅니다 쓰기 :

<script> 
    $(window).load(function() { 
     require(['modules/product'], function (_s) { 
      new _s(); 
     }); 
    } 
</script> 

관련 JS로드 할 것은 기다려야가 (: Script working only on page reload이 질문에 대한 답변을 참조). 도움이 되었기를 바랍니다.

+0

감사하지만 이것은 작동하지 않습니다, 나는 "validate.add"의존성이 정의 섹션에서로드되지 않는다고 생각합니다. 아직도 이유를 알아 냈어. –