私のサーバーで管理する配列を取得しようとしていて、クライアントに共有されています。私はMeteor.methods()がゲッタメソッドを作成することでそれを行う方法であると考えました。 私はMeteor.call()を実行すると何らかの理由でサーバにコンソールに正しく出力しますが、クライアントに未定義を返します。 ifがtrueかfalseかにかかわらず未定義の戻り値を取得します。角度メーターを使ったMeteor.methods経由のサーバーとクライアント間の配列の送信
///server
Meteor.methods({
createNewUser: this.createNewUser,
getRoles: this.getRoles
});
...
getRoles(id) {
console.log(roles);
if (Roles.userIsInRole(id, "admin")) {
return roles;
} else {
return 'blah';
}
}
///client
ngOnInit() {
MeteorObservable.autorun().subscribe(() => {
...
Meteor.call("getRoles", Meteor.userId(), (data) => {
console.log("data", data);
this.roles = data;
console.log("roles", this.roles);
});
console.log("user list", this.userList);
console.log("roles", this.roles);
....
});
Meteor.methods内の他の方法は、()完璧に動作し、私はそれがそんなに少なくないとしてこの1つは見ていない理由を動作するように見えることはできません。
///output
demo.component.ts:53 user list []
demo.component.ts:54 roles []
demo.component.ts:53 user list [Object]
demo.component.ts:54 roles []
demo.component.ts:48 data undefined
demo.component.ts:50 roles undefined
demo.component.ts:48 data undefined
demo.component.ts:50 roles undefined
demo.component.ts:53 user list [Object, Object, Object, Object, Object, Object]
demo.component.ts:54 roles undefined
demo.component.ts:48 data undefined
demo.component.ts:50 roles undefined
ありがとうございました。
私はまた、JSONに、サーバからのリターンを変換しようとしたし、まだ未定義の背中を取得します。 –