2016-04-06 2 views
6

В данный момент Angular 2 находится на 13-й бета-версии. Когда я смотрю на https://code.angularjs.org/2.0.0-beta.13/ я могу видеть, что есть 2 разные версии Angular2:В чем разница между Angular2-all.umd.js и angular2.js

  • angular2-all.umd.js
  • angular2.js

В чем разница между ними? И, скорее всего, у angular2.js нет версии angular2.umd.js, почему это?

+0

https://github.com/angular/angular/blob/master/modules/angular2/docs/ bundles/overview.md –

+0

@EricMartinez 404. Лучше разместить соответствующую информацию, чем ссылку. –

ответ

8

Фактически, если вы хотите использовать приложения Angular2 с ES5, необходимо использовать angular2-all.umd.js.

angular2.js является основным модулем для реализации приложений Angular2 с ES6 или TypeScript. Этот файл должен использоваться вместе с диспетчером модулей, таким как SystemJS.

<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script> 
<script src="node_modules/systemjs/dist/system.src.js"></script> 
<script src="node_modules/rxjs/bundles/Rx.js"></script> 
<script src="node_modules/angular2/bundles/angular2.dev.js"></script> 
+0

Хм, странно, у них нет четкой документации об этом. Кроме того, имена файлов не ясны, а i.m.o. –

+0

На самом деле, я знаю, что команда Angular2 работает над документацией относительно создания таких приложений с ES5 ... Конечно, это будет улучшено в будущем ;-) –

+0

Эй, @ThierryTemplier, когда я смотрю в свой 'systemjs.config.js 'файл из последнего ускоренного запуска с угловым 2, я вижу, что пакеты npm, указанные в объекте' map' для угловых пучков, следующие: '' @ угловой/ядро ​​':' npm: @ угловой/ядро ​​/ пучки/core.umd.js'' , поэтому я надеялся, что вы могли бы прояснить; Я использую TypeScript/ES6 для написания своего приложения, означает ли это, что 'systemjs' никогда не используется? Или он используется в дополнение к компилятору typescript для преобразования ES6 в ES5 для использования в браузере? –

2

Как было упомянуто выше, для ES5 следует использовать модули UMD: angular2-all.umd.js и Rx.umd.js. Для машинописных или ES6 используйте angular2.js и Rx.js (они также требуют system.js).

В качестве учебного упражнения можно также использовать модули в стиле ES6 с ES5: (https://jsfiddle.net/8g5809rg/)

<html> 
<head> 
<script src="https://code.angularjs.org/tools/system.js"></script> 
<script src="https://code.angularjs.org/2.0.0-beta.13/Rx.js"></script> 
<script src="https://code.angularjs.org/2.0.0-beta.13/angular2-polyfills.js"></script> 
<script src="https://code.angularjs.org/2.0.0-beta.13/angular2.js"></script> 

<script> 

System.import("angular2/core").then(function(core) { 

    ParentComponent.annotations = [ 
    new core.Component({ 
     selector: 'body', 
     template: '<div (click)="go()">Parent</div><child [prop1]="x"></child>', 
     directives: [ChildComponent] 
    }) 
    ]; 

    function ParentComponent() { 
    this.x = "hello1" 
    } 

    ParentComponent.prototype.go = function() { 
    this.x += "1" 
    }; 

    /// 

    ChildComponent.annotations = [ 
    new core.Component({ 
     selector: 'child', 
     inputs: ["prop1"], 
     template: '<div>Child {{prop1}}</div>', 
     changeDetection: core.ChangeDetectionStrategy.OnPush 
    }) 
    ]; 

    function ChildComponent() { 
    } 

    //////////////// 

    System.import("angular2/platform/browser").then(function(browser) { 
    document.addEventListener('DOMContentLoaded', function() { 
     browser.bootstrap(ParentComponent); 
    }); 
    }); 
}); 
</script> 
</head> 

<body> 
</body> 
</html> 
Смежные вопросы