私はjsonオブジェクトを持っています。チームとteamDataを呼びましょう。ハンドルバーは2つの異なるプロパティセットを持ちます。ヘルパーか部分?
私は、プライマリとして変数またはコールにセカンダリを渡すと、それは選択されたTeamTypeの状態でドロップダウンの状態をレンダリング持つことができるようにしたいです。
私は多くのハンドルのチュートリアルを読んできたが、それらのどれも実際にオブジェクトの複数のプロパティに対処したり、別のプロパティから値をリンクする方法を示しています。
状態のドロップダウンが
<script type="text/x-handlebars-template" id="tmpl-states">
<select>
{{#eachProperty States}}
<option name="{{property}}">{{value}}</option>
{{/eachProperty}}
</select>
</script>
Handlebars.registerHelper('eachProperty', function (context, options) {
var ret = "";
for (var prop in context) {
ret = ret + options.fn({ property: prop, value: context[prop] });
}
return ret;
});
シンプルですが、私がやりたいことより(須藤中)
renderTemplate("tmps-all", "container", "data", "variable");
<script type="text/x-handlebars-template" id="tmps-all">
{{#each Teams}}
{{#if TeamType == variable}} // e.g. Primary
var State = this.State;
{{/if}}
{{/each}}
<select>
{{#eachProperty States}}
{{#if property == State}} // e.g NY
<option name="{{property}}" selected>{{value}}</option>
{{/else}}
<option name="{{property}}">{{value}}</option>
{{/if}}
{{/eachProperty}}
</select>
</script>
var teamData = {"Teams":[{"TeamType":"Primary","State":"NY"},{"TeamType":"Secondary","State":"CA"}],"States":{"AK":"Alaska","AL":"Alabama","AR":"Arkansas","AZ":"Arizona","CA":"California","CO":"Colorado","CT":"Connecticut","DC":"District of Columbia","DE":"Delaware","FL":"Florida","GA":"Georgia","HI":"Hawaii","IA":"Iowa","ID":"Idaho","IL":"Illinois","IN":"Indiana","KS":"Kansas","KY":"Kentucky","LA":"Louisiana","MA":"Massachusetts","MD":"Maryland","ME":"Maine","MI":"Michigan","MN":"Minnesota","MO":"Missouri","MS":"Mississippi","MT":"Montana","NC":"North Carolina","ND":"North Dakota","NE":"Nebraska","NH":"New Hampshire","NJ":"New Jersey","NM":"New Mexico","NV":"Nevada","NY":"New York","OH":"Ohio","OK":"Oklahoma","OR":"Oregon","PA":"Pennsylvania","PR":"Puerto Rico","RI":"Rhode Island","SC":"South Carolina","SD":"South Dakota","TN":"Tennessee","TX":"Texas","UT":"Utah","VA":"Virginia","VT":"Vermont","WA":"Washington","WI":"Wisconsin","WV":"West Virginia","WY":"Wyoming"}};
を非常に素晴らしいです!私はecmascriptとその新しいプロトタイプ関数を多用していませんが、アプローチはもっと意味があります。最初にデータを再構成し、ハンドルバーをテンプレートにしておく必要があります。あなたが使用したものに似た例を持つ良いチュートリアルは何ですか?特にfindメソッドで使用している述語 – archytect
MDNは常に良好です(https://developer.mozilla)。org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions – 76484
同等の関数式は、次のようになります: 'function(team){return team.TeamType === 'Primary'; } ' – 76484