2017-04-25 14 views
-2

내 프로젝트에 두 개의 javascript 파일이 있습니다. 하나 (index.js)는 Material 객체를 선언하고 다른 객체 (nav.js)는 Material에 메소드를 추가합니다.다른 파일의 systemjs 변수

SystemJS를 사용하여이 둘 모두를 내 HTML 페이지로 가져옵니다.

페이지가로드 될 때 Material이 정의되지 않았다는 두 번째 파일에서 오류가 발생합니다.

나는 그래서 두 번째 전에 첫 번째 파일을로드하고 경우 : 재료 개체가 이미

<script src="./jspm_packages/system.js"></script> 
<script src="./config.js"></script> 
<script> 
    System.import("./scripts/index.js"); 
    System.import("./scripts/nav.js"); 
</script> 

을 정의 할 수 없습니다해야합니까? 여기

var $ = require('jquery'); 

Material.initHeader = function() { 
    console.log('initializing header...'); 
}; 

내가

Uncaught ReferenceError: Material is not defined at nav.js:3

점점 오전 오류입니다 :

하는 index.js :

var $ = require('jquery'); 

// Define Material 
var Material = { 
    components: {}, 
    reload: function() { 
    console.log('reloading...'); 
    }, 
    dev: true 
}; 

및 nav.js 여기


내 두 개의 파일이 있습니다 어떤 도움이 필요합니까?

답변

1

모듈 자체가 포함되어 있습니다. 글로벌 네임 스페이스가로드 될 때 수정하지 않습니다. 다른 모듈의 물건을 원한다면 가져와야합니다 :

var $ = require('jquery'); 
var ix = require('./index.js'); 

ix.Material.initHeader = function() { 
    console.log('initializing header...'); 
}; 
+0

감사합니다. 나는 하루 종일 이것 저것 놀리고 있었고 이것에 가깝지만'var material = require ('./ index.js'); Material.initHeader ...' – krummens