2017-12-20 28 views
0

을에 나타나지 않습니다 글로벌 컨텍스트. 일반 HTML 페이지 (즉,하지 아우렐 리아)의 정확한 동일한 코드 실행이 잘 작동 로드 스크립트는 글로벌 컨텍스트 내 모델 중 하나에 스크립트를로드하려고 시도하고

은 (zxcvbn 는 국제적인 맥락에서 가능)

나는이 외부 JS 파일을로드의 권장 방법이 아니다 알고 그러나 aurelia에서 스크립트는 꽤 크고 내 앱의 한 지점에서만 필요합니다. zxcvbn 상태의 워드 프로세서 :

zxcvbn 검출 및 CommonJS 지원 (노드를 browserify) 및 AMD (RequireJS). 그것들이 없으면 전역 네임 스페이스에 하나의 함수 zxcvbn()을 추가합니다.

My aurelia 앱이 RequireJS를 사용하고 있습니다. 로드 된 전역 네임 스페이스에로드되지 않은 경우 어떻게 참조 할 수 있습니까?

답변

1

정보에 따르면 zxcvbn은 AMD 로더 (RequireJS)가 있음을 감지하고 define을 호출하여 AMD 모듈로 등록합니다. 이미 페이지에 RequireJS를 가지고 있기 때문에

, 당신은 require를 호출하여 jQuery를 호출을 교체하고 전체 경로를 전달할 수 있습니다 : 스크립트는 AMD 모듈로 등록하기 때문에

require(['/lib/zxcvbn/dist/zxcvbn.js'], function (zxcvbn) { 
    // Do something with zxcvbn ... 
}); 

을 매개 변수 zxcvbn은 모듈의 값을 보유합니다. 슬래시로 시작하는 경로를 통과 할 때 그대로, RequireJS 경로를 사용하는

참고 :이은 RequireJS 구성을 무시합니다 (예 : baseUrl, paths, map 등, 적용되지 않습니다), 그리고 RequireJS하지 않습니다 .js 확장자를 추가하십시오. 따라서 확장자가 필요합니다.

+0

정말로 솔리드 한 대답이었습니다. 감사합니다. – wal