【发布时间】:2012-05-08 16:22:26
【问题描述】:
我试图理解无逻辑模板背后的概念,但我发现自己碰壁了。
我想实现一个简单的导航栏,例如每个页面顶部的“主页、关于、联系方式”链接,“当前”链接应该用不同的类突出显示(我使用的是引导程序)。但是我怎样才能以一种明智的方式做到这一点呢?到目前为止,我有:
- 将导航移动到每个模板,并复制整个内容(不是 DRY,丑陋)。
- 使用键而不是值,即
render('home', { on_home_page: true });和<a href="/" {{#on_home_page}}class="active"{{/on_home_page}}>Home</a>。这样更好,但仍然很烦人,因为我必须创建 N 个变量来保存 1 个变量的数据。 - 在控制器中创建导航,即传入
{ 'Home': {link: '/', active: false}, 'About: {link: '/about', active: true} }或类似的。我不喜欢这个,因为它有逻辑少模板的相反问题。现在我有了 HTML-ful 控制器...
鉴于上述选项,我最喜欢 (2)。但我更喜欢用某种方法来检查单个变量,例如:
// controller
render('about', {active: 'about'});
render('home', {active: 'home'});
// mustache nav
<a href="/" {{#if active == 'home'}}class="active"{{/if}}>Home</a>
<a href="/about" {{#if active == 'about'}}class="active"{{/if}}>About</a>
我相信这所有胡子专家都会遇到 --- 最好的处理方法是什么?
【问题讨论】:
标签: javascript templates mustache