最初にドロップダウンリストがmongoを介して入力されるようにテンプレートを作成しようとしています。私は上記の選択に基づいて詳細を含むテーブルを表示する2番目のテンプレートを持っています。私がテーブルに内容を表示するには、まずドロップダウンから選択した値を取得する必要があります。どのように私はそれを正確に行うのですか?ドロップダウンから選択した値を取得して流星のテンプレートヘルパーに渡す方法
this.schemaName
とdefaultTemplate.schemaName
を使用して取得しようとしましたが、役に立たなかったです。
テンプレート:
<template name ='defaultTemplate'>
<div class="form-group" data-required="true">
<label for="Schema" class="control-label">Select the Schema</label>
<select required="true" class="form-control">
<!-- <option default>Select Schema </option> -->
{{ #each schemaNames}}
<option >{{schemaName}}</option>
{{/each}}
</select>
<span class="help-block"></span>
</div>
{{> tableTemplate}}
</template>
<template name="tableTemplate">
<table class="table table-bordered table-condensed">
<thead>
<tr>
<td style="width: 85px">Label</td>
<td>Current Value</td>
<td style="width: 250px">New Value</td>
</tr>
</thead>
<tbody>
{{#each schemaLabels}}
<tr>
<td>{{this.label}}</td>
<td>{{this.value}}</td>
<td>
{{#autoForm id=makeUniqueID type="update" collection=Defaults doc=this autosave=true}}
{{> afFormGroup name="value" label=false}}
{{/autoForm}}
</td>
</tr>
{{/each}}
</tbody>
</table>
</template>
ヘルパー:
import { Template } from 'meteor/templating';
import '../templates/defaultTemplate.html';
Template.defaultTemplate.helpers({
schemaNames: function() {
return Defaults.find({},{schemaName:1}).map(function(c) {return {schemaName : c.schemaName};
});
},
schemaLabels: function() {
var selectedSchema = defaultTemplate.schemaName;
// alert (selectedSchema); >>>>>>>>>> Displays Undefined <<<<<<<<<<<
return Defaults.find({schemaNeme:selectedSchema},{schemaName:0,_id:0}).map(function(c) {return {label : c.label, value: c.value};
});
}
});
はあなたに@CodeChimpをありがとうございます。それをかなり調べてから、私はあなたがリンクで提供した答えに似た何かをしっかりやりました。 true/false値を設定する代わりに、Session.setを使用してSession変数を設定し、次にSession.getを使用してヘルパー内でセッション変数を取得しました。 – blueren
うん、キーは、反応値を読み取るヘルパーです。セッションは反応的なので、同じように動作します。セッションを使用するcatch-22だけが、セッションがテンプレートの再読み込みに耐えられることです(そのページを離れて戻ってきても、同じ値が選択されます)。あなたのユースケースによってはそれが望ましいかもしれませんが、そうでないかもしれません。 – CodeChimp