Meteorアプリケーションには、フォームの変更されたフィールドのデータベース データを更新するイベントがあります。
したがって、イベント ハンドラーは次のようになります。
Template.someTemplate.events({'change #someForm' : function(){
eval("someCollection.update(Session.get(\"currentId\"), {$set: {" + event.target.name + ":event.target.value}});");
}})
evalを使用すると、これはうまく機能します。しかし、このように eval を使用することがベストプラクティスと見なされているとは思えませんか?
次のような作業を行うには、MongoDB 更新コードをどのように作成する必要がありますか?
Template.someTemplate.events({'change #someForm' : function(){
var variableName = event.target.name;
someColletion.update(Session.get("currentId"), {$set: {variableName:event.target.value}});
}})
または、これにアプローチする正しい方法は何ですか? (上記のコードは機能しません。MongoDB の update 命令ではvariableNameが評価されないため、設定値の代わりに「variableName」が渡されます。
実際のアプリケーションではなく、プロトタイピングにこれを使用したいことに注意してください。したがって、セキュリティは実際には問題ではありません。(私はソフトウェア エンジニアではなく、UX の専門家です。)