2015-05-21 43 views
0

我正在努力與本應該是簡單的,我無法得到它。有沒有錯誤,還是隻是我?我創建使用兩種方法兩個簡單的例子:1)registerHelper和2)parentData: 的HTML是:使用父數據上下文流星

<body> 
    This is the body 
    {{> A}} 
</body> 

<template name="A"> 
    This is "A" 
     {{> B}} 
    </template> 

    <template name="B"> 
     This is "B" 
     {{> C}} 
    </template> 

    <template name="C"> 
     This is "C" 
     {{foo}} 
    </template> 

和JavaScript 1)是:

Template.registerHelper(foo, function() { 
    return 'Hello'; 
}); 

而對於案例2 )是:

​​

什麼是錯?

回答

0

看起來你正試圖調用父模板的幫助函數infoMessage。這與訪問父數據上下文不一樣。爲了您的使用情況,我建議註冊,任何模板,包括A和B,可以使用一個輔助函數:

Template.registerHelper("infoMessage", function (dataContext) { 
    return dataContext.infoMessage; 
}); 

編輯:有了您編輯的問題,你缺少圍繞「富」引號(1):

Template.registerHelper("foo", function() { 
    return 'Hello'; 
}); 

然後在你的模板中使用它:

<template name="A"> 
    <div class="message info-message">{{> B}}{{infoMessage .}}</div> 
</template> 

<template name="B"> 
    <div class="wrap-popup"> 
     <div class="popup-img"><img src="check12.svg"></div> 
     <div class="popup-item"> 
      <h1> Sucess</h1> 
      <p>{{infoMessage ..}}Nada...</p> 
     </div> 
    </div> 
</template> 

查看registering helpers官方流星文檔莫回覆。

+0

對不起,但我一直在度假。是的,這確實是一個好方法。但我的問題是,似乎沒有任何工作:1)我用registerHelper創建了一個簡單的例子,它不起作用; 2)我用parentData創建了一個簡單的例子,它也不起作用。是我的版本還是有錯誤?我改變了上面的例子。 –

+0

看起來您在修改後的問題(1)中錯過了「foo」周圍的引號。嘗試添加,並讓我們知道它是否有效。 – FullStack

+0

你完全正確......(這是一個菜鳥的錯誤......)。你有關於Template.parentData的線索嗎?我也嘗試在HTML {{../../foo}}上使用,而不是javascript助手,它仍然不起作用...(我還有一個我上面更正的錯字)。 –

相關問題