Meteor 在不重写数据上下文的情况下将参数传递给模板
我希望在保持模板的原始数据上下文的情况下,将新参数传递给模板Meteor 在不重写数据上下文的情况下将参数传递给模板,meteor,Meteor,我希望在保持模板的原始数据上下文的情况下,将新参数传递给模板 原始数据上下文:{message:“hello”} {{>MyTemplateWithIcon=True} 数据上下文被{withIcon:True}覆盖 实际上,我的解决方案是这样包装数据 <code> {{> myTemplate originalData=this withIcon=True}} </code> 有更好的解决方案吗?您始终可以在助手中扩展当前上下文: Template.pa
- 原始数据上下文:{message:“hello”}
{{>MyTemplateWithIcon=True}
- 数据上下文被{withIcon:True}覆盖
<code>
{{> myTemplate originalData=this withIcon=True}}
</code>
有更好的解决方案吗?您始终可以在助手中扩展当前上下文:
Template.parentTemplate.helpers({
iconContext:函数(){
var result=\ uu0.clone(此);
result.withIcon=true;
返回结果;
}
});
然后像这样使用它:
{{>myTemplate iconContext}
或者,您可以创建一个更通用的帮助器,如下所示:
Template.registerHelper('extendContext',函数(键,值){
var result=\ uu0.clone(此);
结果[键]=值;
返回结果;
});
然后从任何模板的html中选择键/值对:
{{>myTemplate extendContext'带图标'true}
{{>myTemplate extendContext'isAwesome'false}
这两种解决方案都比将原始数据隐藏在单独的字段中更可取,因为它使子模板保持通用性。在此基础上构建以允许多个属性:
<template name="parentTemplate">
{{> myTemplate extendContext withIcon=true label="Has Icon" }}
{{> myTemplate extendContext withIcon=false label="No Icon" }}
</template>
这也应该起作用:
return u.extend({},this,data.hash)代码>你能再详细一点吗?你为什么要做克隆(这个)?你为什么要做克隆(这个)?如果我将结果添加到子数据上下文中该怎么办?类似于iconContext:function(childDataLikeMsgPost){…childDataLikeMsgPost.withIcon=…}的东西会对我有很大帮助
Template.registerHelper('extendContext', function(data) {
var result = _.clone(this);
_.each(data.hash, function(value, key) {
result[key] = value;
})
return result;
})