gpt4 book ai didi

javascript - 我可以在哪个模板事件中隐藏主模板(Meteor)中的元素?

转载 作者:行者123 更新时间:2023-11-30 07:58:55 26 4
gpt4 key购买 nike

我有一个主模板和两个通过 (Iron) 路由显示的模板:

<template name="main">
<div id="templateMain" name="templateMain">
<a href="nfnoscar">The Legend of NFN Oscar</a>
<br/>
<a href="nfnoscarsdonut">NFN Oscar's donut</a>
</div>
</template>

<template name="nfnoscar">
<h1>The True Story of NFN Oscar</h1>
<h2 class="monospaceboldsmallcap">Come and Listen to a Story About a Man without a first Name</h2>
<p>Many people wonder how it can be that NFN (No First Name) Oscar Herrera does not have a first name.</p>
<p>Finally, the secret of his birth name and its subsequent alteration can be revealed.</p>
. . .

挑战在于我想在显示其他模板时隐藏主模板中的两个链接/ anchor 标记。我有一个“隐藏”CSS 类,它隐藏了一个附加了该类的元素。

我可以利用什么事件(没有双关语意)来完成这个?

我试过这个:

  Template.nfnoscar.onRendered({
$('#templateMain').addClass('hide');
});

Template.nfnoscarsdonut.onRendered({
$('#templateMain').addClass('hide');
});

Template.main.onRendered({
$('#templateMain').removeClass('hide');
});

...但是我在编译时收到错误消息;我不认为我可以从其他模板中引用主模板中的元素,无论如何(或者这可能是我的全部问题)。我在控制台/命令提示符 (Windows 7) 中看到的错误是:

=> Errors prevented startup:

While processing files with ecmascript (for target web.browser):
platypus.js:8:6: platypus.js: Unexpected token (8:6)

While processing files with ecmascript (for target os.windows.x86_32):
platypus.js:8:6: platypus.js: Unexpected token (8:6)

=> Your application has errors. Waiting for file change.

那么需要更改什么/如何在路由到它们时隐藏这些初始链接?

这是我的整个 *.js 文件:

Router.route('/');
Router.route('/nfnoscar');
Router.route('/nfnoscarsdonut');

if (Meteor.isClient) {

Template.nfnoscar.onRendered({
$('#templateMain').addClass('hide');
});

Template.nfnoscarsdonut.onRendered({
$('#templateMain').addClass('hide');
});

Template.main.onRendered({
$('#templateMain').removeClass('hide');
});

}

if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}

所以提示的行:字符(8:6)是这里“$”之后的“(”:

Template.nfnoscar.onRendered({
$('#templateMain').addClass('hide');
});

最佳答案

你有一个语法错误。在 JavaScript 中,您不能只将代码块传递给函数:您需要显式传递匿名函数,如下所示:

Template.nfnoscar.onRendered(function() {
$('#templateMain').addClass('hide');
});

关于javascript - 我可以在哪个模板事件中隐藏主模板(Meteor)中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33006741/

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