ロジックレスの背後にあるコンセプトを理解しようとしていますが、私は自分自身を壁に当てています。ヒゲレスのようなロジックレステンプレートエンジンでnav-barを作る方法
簡単なナビゲーションバーを実装したいと思います。すべてのページの上部にある "Home、About、Contact"リンクをクリックし、 "現在"のクラスを別のクラスで強調表示する必要があります(私はブートストラップを使用しています)。しかし、私はこれをどのようにして賢明なやり方で行うことができますか?これまでのところ、私は持っています:
- navをすべてのテンプレートに移動し、すべてをコピーします(DRY、醜いのではありません)。
- 値の代わりにと
<a href="/" {{#on_home_page}}class="active"{{/on_home_page}}>Home</a>
のキーを使用してください。これは優れていますが、1変数のデータを保持するためにN変数を作成する必要があるのはまだ迷惑です。 - コントローラにナビを作成します。すなわち、
{ 'Home': {link: '/', active: false}, 'About: {link: '/about', active: true} }
またはそれに類するものを渡します。論理的でないテンプレートの反対の問題があるので、私はこれを嫌う。今、私はHTMLフルコントローラを持っています...
私は(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>
を---何に対処するための最良の方法ですそれ?
私はこれを見つけて、関数が気がつかないうちにparamを返すことに気付きました。実際には、paramを提供するコールバックを提供する必要があります。レイジーフィディッド:http://jsfiddle.net/dN4Z8/ – danwit
実際には{{#selected_item}}ホーム{{/ selected_item}} 'になっているはずですが、残念ながら4つの文字を見つけられませんでした。元の投稿...ああ。すごい仕事! – BigBlueHat