私はいくつかの '複数の'セレクタを持っていますが、この例では2つのセレクタがあります。この流星コードをどのように反応させることができますか?
<form class="input-field col s10">
<select multiple id="jans-room21">
<option value="" disabled selected>Add Names</option>
{{#each Jans21}}
<option value= '{{FullName}}' selected = {{formatSelectedNames21 RoomJans}} >{{FullName}}</option>
{{/each}}
</select>
</form>
<form class="input-field col s10">
<select multiple id="jans-room22">
<option value="" disabled selected>Add Names</option>
{{#each Jans22}}
<option value='{{FullName}}' selected = {{formatSelectedNames22 RoomJans}}>{{FullName}}</option>
{{/each}}
</select>
</form>
Jans21とJans22は、DBからいくつかのドキュメントを返しています。その部屋の選択された名前、または 'RoomJans'プロパティがないか、 'RoomJans'が ''と等しい名前が表示されます。他のセレクターで選択された名前は除外されます。
Template.jansNameSelect.helpers({
Jans21: function() {
return Programs.find({ $and: [{ CampYear: Session.get('GlobalCurrentCampYear') }, { $or: [{ RoomJans: '' }, { RoomJans: { $exists: 0 }}, { RoomJans: { $in: ['21A', '21B'] }}]}]}, { sort: { FullName: 1 }}).fetch();
},
Jans22: function() {
return Programs.find({ $and: [{ CampYear: Session.get('GlobalCurrentCampYear') }, { $or: [{ RoomJans: '' }, { RoomJans: { $exists: 0 }}, { RoomJans: { $in: ['22A', '22B'] }}]}]}, { sort: { FullName: 1 }}).fetch();
}
});
ボタンをクリックすると、この方法は、DBを更新し、それらの名前を格納するために呼び出されます。私は後だ何
を名前に第1セレクタで選択し、その後、データベースに保存されている場合、第2のセレクタは、最初から選択されたそれらの名前を削除するには名前のリストを更新しますです。最初のセレクタから名前を選択してDBに保存した場合、 'Jans22'関数が再度起動するようなデータベースアクションを実行しているので、これは反応的であると考えていました。しかし、そうではありません。ただし、更新時に正しい名前がロードされます。これを反応させる方法はありますか?
あなたのコードは、一見したところで反応するように見えます。レンダリング後にselectを操作するUIコンポーネントを使用していますか?もしそうなら、おそらく、オプションが更新された後に更新が必要になるでしょう。 –
それを考えると、私はMaterializeセレクタを使用しています。これらのセレクターがMeteorの反応性に反応しないのだろうか? –