我有一个Angular 2应用程序,它使用ExpressJS服务器作为API。
它请求端点api / games /:id返回一个.js文件,然后我将其附加到标记内的HTML头部 - 该文件包含运行游戏所需的所有javascript。
因此,假设端点返回.js文件:
var SeedGame = /** @class */ (function (_super) {
__extends(SeedGame, _super);
function SeedGame(width, height, render, id) {
var _this = _super.call(this, width, height, render, id, null) || this;
_this.state.add('Boot', BootState, false);
return _this;
}
return SeedGame;
}(Phaser.Game));
var BootState = /** @class */ (function (_super) {
__extends(BootState, _super);
function BootState() {
return _super !== null && _super.apply(this, arguments) || this;
}
BootState.prototype.init = function () {
this.stage.backgroundColor = '#ff0087';
};
BootState.prototype.preload = function () {
};
BootState.prototype.render = function () {};
return BootState;
}(Phaser.State));
我遇到的问题是我不想将代码添加到全局窗口对象中。如果我可以将返回的函数包含在角度组件范围内,那将是很好的。
this.scriptService.loadScript('api/games/load').then(results2 => {
// Where id like to access the SeedGame function from the server
});
我可以控制从端点返回的JS,因此可以改变它的结构。
这可能吗?