2016-02-27 112 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

這是肯定的,因爲我們在別處使用它 –