2017-05-23 46 views
-1

工作這是我下面的功能,我可以看到一個物體在用的console.log reslocalstorage.setitem沒有角

login2(){ 
    console.log(this.user_form_value); 
    console.log(this.password_form_value); 
    this._loginService.login(this.user_form_value, this.password_form_value).subscribe(
     res => console.log(res.user), 
     res2 =>localStorage.setItem("getLoggedInUserANG1",JSON.stringify(res2.user)) 
    ) 

    } 

但是,當我試圖在同一存儲在本地存儲,它沒有得到保存。我是新角度,沒有錯誤,但我不知道它沒有得到保存的原因。保存後,我也想獲取相同的使用getitem在一個數組變量,並得到它console.log,請幫助我瞭解基本問題,我要去錯了。

下面是我的console.log enter image description here

+0

你不是應該使用'res.user'在'JSON.stringify(res2.user)',因爲RES2沒有定義,直到你設置的localStorage – Sajal

+0

是你能在設置後使用'getItem'獲取數據?我曾經有過同樣的問題。本地存儲中的數據沒有立即反映出來。在本地存儲中設置數據後,關閉開發人員工具並重新打開它。 –

回答

1

res2的截圖沒有定義。我相信你需要看看JavaScript Arrow Funcions docs

試試:

login2() { 
    console.log(this.user_form_value); 
    console.log(this.password_form_value); 
    this._loginService.login(this.user_form_value, this.password_form_value).subscribe(
     res => { 
      console.log(res.user); 
      localStorage.setItem("getLoggedInUserANG1",JSON.stringify(res.user)); 
     } 
    ) 
} 
+0

工作,但我哪裏出錯了?和我如何獲得相同的數組變量,並將其打印到控制檯日誌,我想從這樣的存儲對象中獲取用戶名,但無法'this.loggeduser_array = JSON.parse(localStorage.getItem(「getLoggedInUserANG1」 )); console.log(this.loggeduser_array.username);',請指導 – user2828442

+0

'subscribe'接收一個函數作爲參數。 'res'是你的'subscribe'的參數。當使用箭頭函數時,如果函數只有一個語句,可以省略'{'和'}'。這不是你的原因。你做一個'console.log'和一個'localStorage.setItem'之後。爲了解決它,我添加了'{'和'}'來界定函數的範圍。你能解釋更多關於你是什麼意思_「我如何得到相同的數組變量並將其打印到控制檯日誌」_?或者(最好)提出一個關於它的新問題? –

+0

在我抓取的對象中,它有一個參數username,我想抓取它,我想這樣 - this.loggeduser_array = JSON.parse(localStorage.getItem(「getLoggedInUserANG1」)); (但是無法抓住它,你可以看到這個截圖 - https://www.dropbox.com/s/6odgf7mmlmdn93e/Screenshot%202017-05-24%2000.53.01) .png?dl = 0 – user2828442