深度嵌套的动态模板会丢失父级

时间:2016-05-05 22:23:02

标签: javascript templates meteor

我正在尝试使用动态模板来创建虚拟数字键盘;这可以通过将按钮行传递给另一个呈现它们的模板来实现。我遇到的问题是模板无法使用Templates.parentData()来访问上下文,因为它变得未定义。使用Templates.parentData(2)或(3)向上移动也不起作用。

Template.bs_num_pad.helpers({
	'number_rows' : function(){
		var result = [];
		console.log(this);

		console.log(Template.currentData());
        // true
		console.log(Template.parentData(1));
        // Template viewName="Template.bs_num_pad"
		console.log(Template.parentData(-2));
        // true
		console.log(Template.parentData(-3));
        // true
      }
  });

<!-- begin snippet: js hide: false -->
<template name="bs_num_pad">
	<div class="container bsNumPadNumber">
	<span style="display:block;text-align:center;">{{getBsNumPadNumber}}</span>
	
	{{#each number_rows}}
	<div class="col-3">
		{{>bs_buttonset}}
	</div>
	{{/each}}
	</div>
</template>

数字键盘模板,它引用另一个模板来生成引导程序按钮组。

<template name="bs_buttonset">
{{!Template.dynamic template="bs_buttonset" data=difficultyOptions }}
<div class="btn-group btn-group-md" style="text-align:center;display:inline-block;" role="group">
  {{#each this}}
        <button id="{{btnId}}" value={{value}} class="btn {{btnClass}}" type="button">
          {{#if btnIcon}}<i class="glyphicon {{btnIcon}}"></i>{{/if}}{{#if btnText}}{{btnText}}{{/if}}
        </button>
  {{/each}}
</div>
</template>

Template.parentData(-2)应该返回optionsModal的内容;相反,它返回'true'。

0 个答案:

没有答案