走路模板嵌套有更优雅的方式吗?

时间:2014-11-02 01:07:58

标签: meteor meteor-autoform

我试图访问父母数据上下文

为了达到目的,我有一条看起来如下的行: -

template.view.parentView.parentView.parentView.parentView.dataVar.curValue

在UI方面,我有

template [dataIwant]使用模态对话框呈现另一个模板,该对话框使用autoform

然后我使用autoform挂钩来获取一个之前的保存事件,我想用它来为保存的文档添加一个额外的值。

然后我将在钩子中传递的模板移回顶部模板。好像我应该能够以更优雅的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

今天想出了这个代码,因为我也需要它:

_.extend(Blaze.View.prototype,{
  closest: function(searchedViewName){
    currentView = this;
    while (currentView && currentView.name != searchedViewName){
      currentView = currentView.parentView;
    }
    return currentView;
  }
});

<template name="parent">
  {{> child}}
</template>

Template.parent.created = function(){
  this.reactiveVar = new ReactiveVar(false);
};

<template name="child">
  {{parentName}}
  {{parentVar}}
</template>


Template.child.helpers({
  parentName:function(){
    return Template.instance().view.closest("parent").name;
  },
  parentVar:function(){
    return Template.instance().view.closest("parent")._templateInstance.reactiveVar.get();
  }
});

到目前为止一直很好,但是我已经发现用例无法正常工作(在模板定义中使用Template.contentBlock会因为一些未知原因而破坏整个事件)。