在使用angular 2中的指令时,JS文件中System.register的含义是什么意思。
答案 0 :(得分:11)
我认为这个问题不是特定于angular2中的指令,它是关于ES6,TypeScript和其他使用SystemJS的现代编译器的一般性问题。简短的回答 - 它是由System.js创建的包装器,用于隔离代码并注入外部依赖项。
此代码:
import { p as q } from './dep';
var s = 'local';
export function func() {
return q;
}
export class C {
}
将生成:
System.register(['./dep'], function($__export, $__moduleContext) {
var s, C, q;
function func() {
return q;
}
$__export('func', func);
return {
setters: [
// every time a dependency updates an export,
// this function is called to update the local binding
// the setter array matches up with the dependency array above
function(m) {
q = m.p;
}
],
execute: function() {
// use the export function to update the exports of this module
s = 'local';
$__export('C', C = $traceurRuntime.createClass(...));
var moduleName = $__moduleContext.id;
}
};
});
在这里 - System register您可以找到关于这个问题的更多详细信息。