在post函数内部调用的angular 2函数 [英] angular 2 function calling inside an http post function

查看:64
本文介绍了在post函数内部调用的angular 2函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个http发布功能.

I have a http post function.

login(){

    var data = {
      email : this.name,
      password : this.pass,
      appId : this.appId
    };
    console.log(data);

    this.http.post(SERVER_URL+"/templatesAuth/authenticateForApp",data)
      .subscribe(function(res){

         let requestParams = {
            "token": res.token,
            "email": data.email,
            "name": res.user.name,
            "phone": res.user.phone,
            "streetNumber": res.user.streetNumber,
            "streetName": res.user.streetName,
            "country": res.user.country,
            "city": res.user.city,
            "zip": res.user.zip,
            "type": 'internal',
            "appId":res.user.appId,
            "registeredUser": res.user.sub
          };


        },
        function(err){
          alert('login failed');
        })


  }

function(req){ }内的

我无法编写或使用examplearray.push();之类的调用 我总是遇到错误无法读取未定义的属性"push"

inside the function(req){ } I cannot write or use calls like examplearray.push(); im always having an error Cannot read property 'push' of undefined

当我使用本地存储功能时.

when I use Local storage functions like.

this.localStorageService.set('test'+this.appId,(requestParams));

错误:无法读取未定义的属性'set'

但是我可以在function(req){ }之外使用它们.无法解决问题

but I can use them out side of the function(req){ }. couldn't figure-out the problem

有什么方法可以将requestParams移到外面.

is there any way to get the requestParams outside.

推荐答案

这是范围界定的非常常见的问题:

This is very common issue of scoping :

只需更改行

.subscribe(function(res){

.subscribe((res) => {


另一种方法是:


Another way of doing is :

.subscribe(function(res){ ... }).bind(this)


要阅读的好文章: https://toddmotto.com/es6-arrow-functions-syntaxesand-lexical-scoping/ 并检查以下答案是否为:箭头功能与bind()之间的区别


Great article to read : https://toddmotto.com/es6-arrow-functions-syntaxes-and-lexical-scoping/ and check this answer for : Difference between arrow function and bind()

这篇关于在post函数内部调用的angular 2函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆