2016-02-27 89 views
3

我无法从子助手中获取并设置父模板变量。 我读过很多关于这个问题的网页,但我坚持......流星 - 从孩子助手的访问父模板变量

Template.parent.onCreated(function() { 
    this.myVar = new ReactiveVar('xyz'); 
}); 

预计将接近儿童这样的:

Template.child.helpers({ 
setAndGetIt : function() { 
    Template.parentData(1).myVar = 'testString'; 
    return Template.parentData(1).myVar; 

}}); 

其中

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

我想念什么? (Sessions解决方案在这里不是......)

+0

顺便说一句,你可以使用Session而不是ReactiveVar。 –

+0

我在问题中写的是...... Sessions解决方案在这里不是... :) –

+0

哦,对不起,错过了这个 –

回答

1

有一个更聪明的方法来完成这项任务。但是你需要显式地声明你想在子模板中访问哪些变量。并且很可能你希望var是被动的。

Template.parentTemplate.onCreated(function(){ 
    this.myVar = new ReactiveVar('hello'); 
}); 

在Blaze中,您需要在调用像这样的子模板时传递此变量。

{{>child myVar=myVar }} 

Template.child.onRendered(function(){ 
    console.log(this.myVar.get()); 
}); 
+0

首先它不适合我,“this.myVar”是“undefined”。其次,我必须设置从孩子助手 –

+0

的价值,你需要首先添加'reactive var'包。你可以在任何地方设置/获取变量。 –

+0

这是肯定的,因为我们在别处使用它 –