ユーザーデータを編集できるページがあります。私はルーティングのためにFlowRouter
を使用していて、ルート/employees/:id
にあります。レコード編集ページのデータを取得する
サーバー上のデータが変更されたときに詳細フォームを更新し、他のクライアントによって削除された場合はルートを残す必要があります。
私はTracker.autorun
を使用して、データが変更されるたびに通知します。以前のユーザー情報はテンプレートに保存されるので、レコードが削除されたかどうかを簡単に確認できます。私は、テンプレートがレンダリングされるので、値が正しく設定されませんでした前に、そうではないことは、データが利用可能であることにつながる可能性があると考えているように、データをテンプレートに設定された場合、私はチェックしてるonRendered
コールバックで
Template.UpdateEmployee.onCreated(function() {
const self = this;
self.subscribe('user', FlowRouter.getParam('id'));
self.autorun(function() {
const _id = FlowRouter.getParam('id');
const user = Meteor.users.findOne({_id});
if(!user && self.user)
FlowRouter.go('/employees');
self.user = user;
if(!user)
return;
user.email = user.emails[0].address;
$('.ui.form').form('set values',user);
});
});
そして最後に。これは正しいです?
Template.UpdateEmployee.onRendered(function() {
if(this.user){
user.email = user.emails[0].address;
$('.ui.form').form('set values',user);
}
});
この解決策にはどんな落とし穴がありますか?
私が実際に購読しているのは、購読しているレコードが1つだけですが、まだオブジェクトを取得する必要があるため、IDを提供する必要がないことがわかりました他のユーザーがいないため、1つを見つけることができます。 – pikausp
第二に、従業員の情報を更新する管理者です。あなたの3番目のポイントには、私はドキュメントを読んだので、私が欲しいのは私が望んでいないユーザーが変更可能であることを発見したからです。この場合、ルールを拒否するか、どちらも良い。申し訳ありませんが、電話でのご質問 – pikausp
申し込み方法が表示されませんでした。それから全体的に私はまだあなたが大丈夫だと言っています。私は個人的には、ユーザープロファイルからデータを分離して、ユーザーIDをワイヤで渡すのではなくセッションに保持したいと思います。 – NicholasByDesign