2015-07-16 3 views
7

Этот код должен отображать div, содержащий Hello World, но вместо этого я получаю сообщение об ошибке Uncaught TypeError: System.import is not a function. Я следую по началу работы видео-учебник для нг-book2, который содержит следующий код в index.html:Uncaught TypeError: System.import не является функцией

<!DOCTYPE html> 
<html> 
<head> 
    <title>Angular 2</title> 

    <script src="js/traceur-runtime-0.0.90.js"></script> 
    <script src="js/system-0.18.4.js"></script> 
    <script src="js/angular2-alpha31.js"></script> 
</head> 
<body> 
    <script>System.import('js/app');</script> 
    <hello-world></hello-world> 
</body> 
</html> 

и app.ts:

/// <reference path="../lib/node_modules/angular2/angular2.d.ts" /> 

import { 
    Component, 
    View, 
    bootstrap 
} from 'angular2/angular2'; 

// Annotation section 
@Component({ 
    selector: 'hello-world' 
}) 
@View({ 
    template: '<div>Hello World</div>' 
}) 
// Component controller 
class HelloWorld { 

} 

bootstrap(HelloWorld); 

и, наконец, текущую структуру каталогов:

/ng2 
    /js 
    angular2-alpha31.js 
    app.js 
    app.js.map 
    system-0.18.4.js 
    system-0.18.4.js.map 
    traceur-runtime-0.0.90.js 
    index.html 

Оглядываясь на решения, only issue that seems similar enough заявляет о наличии проблемы с Системой config.js. За исключением этого урока, видео показывает эту работу без каких-либо намеков конфигурации. Следует отметить, что это размещается на удаленном сервере по сравнению с локальным HTTP-сервером, используемым в видео.

Скриншоты окна Разработчик:

System.import is not a function

File list

Каждый файл показано в приведенной выше структуре каталогов является наиболее имеющихся в настоящее время на GitHub, как писать это. Есть ли файл конфигурации по умолчанию, который я должен включать, если я использую удаленный сервер, или я вообще ничего не теряю?

+0

Правильно ли загружается система? Что делает автозаполнение в консоли JavaScript после 'System'? – tadman

+0

попробуйте этот проект семени, у вас есть бегущий мир привет с самого начала -> https://github.com/mgechev/angular2-seed –

+0

@tadman Извините, не уверен, что вы подразумеваете под автозаполнением? В окне консоли ниже ошибки отображается «(анонимная функция) @ (индекс): 11'. Есть ли метод в объекте 'System', который я могу проверить, чтобы проверить, правильно ли он загружается? –

ответ

6

После игры с файлами далее я обнаружил, что Angular2 переопределяет SystemJS 'System объект со своим собственным. Если angular2.js переехал выше system.js в HTML, то заявление

<script>System.import('js/app');</script> 

использует правильный объект System.

Этого не должно быть, однако пока это проблема.

1

Uncaught TypeError: System.import is not a function

Сообщите, что js/system-0.18.4.js не удалось загрузить.

+0

Нечего больше ходить на базарате? У меня такое же сообщение об ошибке. –

+0

Посмотрите, что такое 'System' ... определено – basarat

+0

Я создал отдельный пост и разместил свои конфиги и такие: http://stackoverflow.com/questions/35636823/systemjs-and-karmajs-typeerror-system- импорт-это-не-а-функция –

Смежные вопросы