gpt4 book ai didi

javascript - 检测 Meteor 中当前模板包含哪个模板

转载 作者:行者123 更新时间:2023-12-02 16:49:42 26 4
gpt4 key购买 nike

我想检测哪个模板包含另一个模板,因为我想要一个仅用于一个特定模板的 css 类。

它应该如何工作:

<template name="includedTempl">    
<div class="panel panel-default {{#if templateX}}specialCSS{{/if}}" id="{{_id}}">
</template>

Template.includedTempl.helpers({
templateX: function() {
if (this.includedBy('templX.html')) {
return true;
}
return false;
}
});

我该怎么做?任何帮助将不胜感激。

最佳答案

一般来说,子模板确定其父上下文可能具有挑战性,因为它可能嵌套任意次数。因此, parent 通常更容易为 child 提供触发所需行为的上下文。这是一个例子:

app.html

<body>
{{> parentTemplate parentContext}}
</body>

<template name="parentTemplate">
{{> childTemplate specialContext}}
{{> childTemplate}}
</template>

<template name="childTemplate">
<div class="{{isSpecialClass}}">
<p>parent name: {{name}}</p>
</div>
</template>

app.js

if (Meteor.isClient) {
Template.body.helpers({
// add some context to the parent do demo how it can be modified
parentContext: {name: 'dave'}
});

Template.parentTemplate.helpers({
specialContext: function () {
// make a copy of the parent data context
var data = _.clone(Template.instance().data || {});
// modify the context to indicate the child is special
data.isSpecial = true;
return data;
}
});

Template.childTemplate.helpers({
isSpecialClass: function () {
// grab the context for this child (note it can be undefined)
var data = Template.instance().data;
if (data && data.isSpecial)
// add the 'awesome' class if this child is special
return 'awesome';
}
});
}

此处,父模板创建两个子模板。第一个子级被赋予父级上下文以及isSpecial。具有 isSpecial 的模板将包含一个带有 awesome 类的 div。唯一棘手的部分是父助手和子助手都必须使用 Template.instance以确定他们的背景。

推荐阅读

关于javascript - 检测 Meteor 中当前模板包含哪个模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26787217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com