【发布时间】:2015-04-14 03:52:45
【问题描述】:
我正在使用 jQuery 步骤创建一个表单向导。从第 1 步到第 2 步,我需要能够根据第 1 步中的选择来确定加载了哪个模板。我有这个模板。我希望在会话变量更改时呈现不同的模板。
<template name = "selectFrame">
<div class = "container">
<div class = "frameCarousel">
{{> Template.dynamic template=active data=this}}
</div>
</div>
</template>
每个内部模板如下所示。
<template name = "artLineFrame">
{{#each artLineFrames}}
<div class = "thumbnail">
<div class = "something">
<img data-src = "{{source}}" alt = "placeholder" class = "img-circle">
<h2>{{name}}</h2>
<p>{{description}}</p>
<button type = "button" id = "{{tag}}" class = "btn btn-primary">Select</button>
</div>
</div>
{{/each}}
</template>
<template name = "classicFrame">
{{#each classicFrames}}
<div class = "thumbnail">
<div class = "something">
<img data-src = "{{source}}" alt = "placeholder" class = "img-circle">
<h2>{{name}}</h2>
<p>{{description}}</p>
<button type = "button" id = "{{alt}}" class = "btn btn-primary">Select</button>
</div>
</div>
{{/each}}
</template>
<template name = "versionsFrame">
{{#each versionsFrames}}
<div class = "thumbnail">
<div class = "something">
<img data-src = "{{source}}" alt = "placeholder" class = "img-circle">
<h2>{{name}}</h2>
<p>{{description}}</p>
<button type = "button" id = "{{alt}}" class = "btn btn-primary">Select</button>
</div>
</div>
{{/each}}
</template>
<template name = "myHarmonyFrame">
{{#each myHarmonyFrames}}
<div class = "thumbnail">
<div class = "something">
<img data-src = "{{source}}" alt = "placeholder" class = "img-circle">
<h2>{{name}}</h2>
<p>{{description}}</p>
<button type = "button" id = "{{tag}}" class = "btn btn-primary">Select</button>
</div>
</div>
{{/each}}
</template>
Active 是一个函数,它获取会话变量的值并返回相应模板的名称。
Template.selectFrame.created = function() {
this.selectFrame = new ReactiveVar(null);
this.autorun(function(){
var templateName = Session.get('board');
console.log('##' + templateName);
Template.instance().selectFrame.set(templateName);
})
Tracker.flush();
}
Template.selectFrame.helpers({
'active' : function() {
var dynamicName = Template.instance().selectFrame.get();
return dynamicName;
}
})
board 的值,即决定将呈现哪个模板的会话变量,会发生应有的变化,但唯一会呈现的模板是也设置了 board 的默认值的模板。谁能提供一些帮助或我需要做的一些修改。
【问题讨论】:
-
我也遇到了这个问题。我只能猜测是 JQuery Steps 破坏了我们的空格键模板。只有第一个“步骤”上的变量会被动更新;即使我在某处手动调用 Session.set() 也没有更新任何其他内容。
标签: meteor