2017-02-05 4 views
2

Meteor 전화 인증 패키지 mys:accounts-phone을 설치 했으므로 사용자 컬렉션에 phone.number 하위 필드를 추가해야합니다.Meteor.user() 속성에 액세스 할 수 없습니다.

Meteor.user().phone.number 

을하지만, 타이프 라이터 오류

을 보여줍니다

재산권 '전화'유형 '사용자'에 존재하지 않는 : 나는 다음과 같이 필드에 액세스하려고합니다.

반면에 users.profile에 사용자 정의 소품이 있으며 이러한 방식으로 쉽게 액세스 할 수 있습니다. 안전하지 않은 항목이 아직 제거되지 않았습니다. 자동 게시가 켜져 있습니다.

+0

은'Meteor.user()'객체 아래의 모든 키를 인쇄하거나 보는 방법이 있습니까? – theonlygusti

+0

{ \t "_id": "xk67327YLKYeiPnKE", \t "createdAt": ISODate ("2017-01-19T12 : 21 : 55.692Z "), \t"서비스 ": { \t \t"전화 ": {}, \t \t"이력서 ": { \t \t \t"loginTokens "[ \t \t \t \t { \t \t \t \t \t "when": ISODate ("2017-01-19T12 : 22 : 05.008Z"), \t \t \t \t \t "hashedToken": "CLBi1T8fthuGOqpiS2alZw7kaGm oiAYiCC4nJZoTssc = " \t \t \t \t}] \t \t} \t}, \t "전화 ": { \t \t"수 ":"9721234567 ", \t \t"확인 "TRUE}, \t" 프로필 ": { \t \t"이름 ":"Lф11 ", \t \t"regNum ":"Х205НА77 "}} – Dmitry

+0

이것은 DB에서 추출한 것입니다. 사실 Meteor.user() 객체 키를 얻는 방법을 모르겠습니다. 또 다른 이상한 일은 Ctrl-Space Idea에 의해 DB에없는 username 속성을 보여줍니다. – Dmitry

답변

0

이는 각도 요소가 초기화되었지만 서버에서 유성 데이터에 도달하지 않은 경우 발생합니다. 는 HTML 부품 사용이

을에 인쇄 할 경우 Meteor.User

의 모든 값을해야합니다 이제 사용자 변수에 Meteor.user()

import {Component} from "@angular/core"; 
import { InjectUser } from 'angular2-meteor-accounts-ui';//<--**** import this**** 

@Component({ 
     selector: "login-buttons", 
     template 
    }) 
@InjectUser('user') //<--*** add this*** 
export class LoginButtonsComponent { 
     user: Meteor.User; //<--*** add this *** 
     constructor(private router: Router) {} 
} 

대신에 사용자 주입을 사용하려고

<div *ngIf="user"> 
    {{user.phone.number}} 
</div> 

meteor add accounts-password 

meteor npm install --save angular2-meteor-accounts-ui 

및 app.mod에 설치하는 것을 잊지 마세요 ule.ts 파일

import { AccountsModule } from 'angular2-meteor-accounts-ui'; 

@NgModule({ 
    imports: [ 
    ... other modules here 
    AccountsModule 
    ], 

희망. 이게 작동하지 않으면 알려주지 다른 해결책을 말해 줄께

+0

accounts-phone 패키지를 사용하고 있으므로 계정 비밀번호가 필요하지 않습니까? 또한, angular2-meteor-accounts-ui에 대한 설명이나 문서는 없습니다. 나는 이온 2 fo 프론트 엔드를 사용하고있다. – Dmitry

+0

컴파일 타임에 같은 오류가 발생합니다. – Dmitry

0

유성 docs에서 가능한 답변을 얻었습니다.

username 속성이 나타나는 이유를 설명합니다. 기본적으로 Meteor는 공개로 간주되는 여러 필드만을 게시합니다. 추가 필드를 노출하려면 명시 적으로 게시해야합니다.

테스트 할 시간이 아직 없지만 작동해야한다고 생각합니다.

동일한 sympthoms를 사용하는 다른 이유는 게시 코드가 서버 측에서 실행되지 않기 때문입니다. 시도해보십시오

Meteor.startup(() => { 
    // code to run on server at startup 
    Meteor.publish('userData', function() { 
     if(!this.userId) return null; 
     return Meteor.users.find(this.userId 
      //, {fields: {lastname: 1,}} 
     ); 
    }); 
}); 

내 응용 프로그램의 폴더에 있습니다.

관련 문제