下面給出的答案,使用Meteor Deps似乎是理想的發揮,因爲我想兩個不同的模板之間共享數據,並應該對發生的任何變化產生反應。
澄清:我的數據來源是Template.reactiveTable
,目的地是Template.buttons
。當reactiveTable
中的數據發生變化時,我希望按鈕反映這一點。
END EDIT
我尋找設置的buttons
基於表(具體地,<h1>
值)的含量的值。
buttons.html:
<template name="buttons">
{{#each testButtons }}
<button id="{{ name }}">{{ name }}</button>
{{/each}}
</template>
利用這種硬編碼它按預期工作(兩個按鈕渲染標記Alice和Bob
UI.registerHelper('testButtons', function() {
return [
{ name: "Alice" },
{ name: "Bob" }
]
}
)
模板愉快地接受和呈現此陣列對象的。但是,不是當我動態地生成對象數組時
目標:爲我的h1標籤中包含的每個唯一的單詞生成一個按鈕(幾乎像一個博客標籤)。
通過替換我的幫手代碼與片段下面(使用jQuery解析<h1>
標籤,生成數組發送到模板)。
假定HTML是:
<h1>foo</h1>
<h1>bar</h1>
<h1>baz</h1>
然後運行在控制檯以下片斷,如期望將創建uniqStrings = [ "foo", "bar", "baz"];
。
$('h1').map(function() {
var words = [];
words.push($(this).text());
uniqStrings = _.uniq(words);
});
如何再發uniqStrings
回到我的按鈕模板來呈現n= uniqStrings.length
按鈕?謝謝!
謝謝大衛! FWIW,我正在處理兩種不同的模板:Template.someTable中的h1標籤,而Template.buttons中的按鈕。不知道這是否會影響解決方案,但感謝您的確切答案。 – DeBraid 2014-08-28 14:42:46
這將抓取所有當前呈現的模板中的'h1'標籤,因此它應該可以正常工作。 – 2014-08-28 14:48:34
在我的情況下,該模板尚未呈現,這導致解決方案的一些問題。在執行上述操作之前,如何等待TemplateName被渲染? – DeBraid 2014-08-29 04:00:07