2017-05-13 51 views
1

我從Auth0啓動種子設立,其工作,並給出以下(的片段)JSON字符串:從與Ember 2.X Auth0/Facebook的JSON響應獲取數據

  { 
"name": "Silvio Langereis", 
"given_name": "Silvio", 
"family_name": "Langereis", 
"gender": "male", 
... 

在我main- profile.hbs,我已經從以下預設Auth0代碼,其顯示相應的項目:

<h3>{{profile.name}}</h3> 
<h4>{{profile.nickname}}</h4> 

然後充分JSON字符串顯示與profile.body

當我想顯示{{profile.given_name}}時,什麼也沒有顯示出來。我對此感到有點困惑。 profile.name正好在json上方,顯示得很好。 任何人有一個想法這裏發生了什麼?這個想法是將已經獲得的數據填入表單中,這樣用戶就可以完成並提交(從而創建一個db記錄)首次登錄。

這正常工作,被填充到文本字段:

<div class="form-group has-feedback {{if item.isValidUserName 'has-success'}}"> 
     <label class="col-sm-2 control-label">Gebruikersnaam*</label> 
     <div class="col-sm-7 col-sm-offset-1"> 
      {{input type="text" value=profile.name class="form-control"}} 
      {{#if item.isValidUserName}}<span class="glyphicon glyphicon-ok form-control-feedback"></span>{{/if}} 
     </div> 
    </div> 

這不:

<div class="form-group"> 
    <label class="col-sm-2 control-label">Voornaam*</label> 
    <div class="col-sm-7 col-sm-offset-1"> 
     {{input type="text" value=profile.given_name class="form-control"}} 
     {{#if item.isValidFirstName}}<span class="glyphicon glyphicon-ok form-control-feedback"></span>{{/if}} 
    </div> 
</div> 

回答

1

我這樣的傻瓜!

在routes/user-profile.js中,json被解析並添加到本地存儲對象'profile'中。在那裏,我必須聲明我想將哪些價值放入其中。

路由/用戶profile.js:

import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend({ 
    model() { 
    const profile = localStorage.getItem('profile'); 
    const profileObject = JSON.parse(profile); 
    const model = { 
     name: profileObject.name, 
     nickname: profileObject.nickname, 
     pictureUrl: profileObject.picture, 
     email: profileObject.email, 
     body: profile.trim() 
    }; 
    return model; 
    } 
}); 

添加下面的行,解決了這個問題:given_name: profileObject.given_name,

沖洗和重複爲需要的值。