Javascript 将http字符串var从vanilla JS传递到Angular2服务的更好方法
是否有更好的方法将HTTP字符串变量从vanilla JavaScript传递到Angular2服务。目前,我正在通过Javascript 将http字符串var从vanilla JS传递到Angular2服务的更好方法,javascript,angular,Javascript,Angular,是否有更好的方法将HTTP字符串变量从vanilla JavaScript传递到Angular2服务。目前,我正在通过窗口传递它。\uu myVar但是有没有其他方法不使用窗口属性 我尝试使用@HostListener(),但我认为如果在Angular2中的共享服务中使用,它不起作用,但如果在组件中使用,它会起作用 @HostListener('window:js-value', ['$event.detail']) onJsValue(val) { console.log('Host
窗口传递它。\uu myVar
但是有没有其他方法不使用窗口
属性
我尝试使用@HostListener()
,但我认为如果在Angular2中的共享服务中使用,它不起作用,但如果在组件中使用,它会起作用
@HostListener('window:js-value', ['$event.detail'])
onJsValue(val) {
console.log('HostListener: ', val);
alert(val);
}
在我的vanilla JS中,我有这样一个:--我想将passTheResultToAngular
变量传递给Angular2,以便在共享服务的http请求中使用
这就是我在config.js中的内容
let passTheResultToAngular= 'http://passmetoangularserve.net/api/;
window.dispatchEvent(new CustomEvent('js-value', { bubbles: true, detail: passTheResultToAngular}));
有没有其他方法将变量从JS传递到Ng2服务
如果变量来自success ajax调用
,该怎么办
success: function (data) {
console.log('SMm', nodeApiUrl + data.Results.Value);
var passTheResultToAngular= data.Results.Value;
}
在我的打字中:--
Typescript是javascript的超集,因此我们可以直接使用变量
例如,在javascript代码中,我们可以将varmyVar
写为全局变量
在typescript和import语句中,您可以使用如下代码
declare myVar
如果它来自一个ajax调用
,该怎么办?我获得了passResultToAngular未定义
我在typings.d.ts中声明了这个变量
我已经用success
更新了这个问题,如果它只是一个独立的变量就可以了。但是我需要的实际http字符串来自api端点。不要使用让数据类型使用var passTheResultToAngular=';dispatchEvent(新的CustomEvent('js-value',{bubbles:true,detail:passTheResultToAngular}));是的,我用了var,那只是我问题中的输入错误。我必须设置一个全局var passTheResultToAngular
并将其设置为passTheResultToAngular=string
,否则在ng2yes中使用时将不定义它。因为let是词法范围,所以它将在块中使用。如果您在其中定义了它,它将被视为本地变量,您不能访问该函数的外部变量,作为调用端点的全局配置文件。这也将在angular2之外使用。主要是为了更改端点url调用,而无需重新编译整个ng项目。至于“ng2之外”,我在angular项目中有另一个第三方工具,它是vanilla JS,不是构建的,或者不能作为ng2Nope导入,我已经询问了我正在使用的工具的开发团队,他们说如果不重写整个库,就不能在ng2中导入/使用,因为它是一个完整的应用程序(mxGraph)@Claies其mxGraph:)否则,如果它只是ng2,你会建议怎么做?
declare myVar