1

さまざまな Web ページを含む単純な Web サイトをセットアップして DRY を維持するのに問題があります。

すべてを設定したので、URL の最後のフラグメントは、Web ページのコンテンツ部分にロードする必要があるテンプレートの名前です。ここでやりたいことは、そのテンプレートを URL に基づいて特定の場所にロードすることだけです。

どの例でも、彼らはこれを行います:

{{#if showCreateDialog}}
    {{> createDialog}}
  {{/if}}

  {{#if showInviteDialog}}
    {{> inviteDialog}}
  {{/if}}

に沿って何かをしたい

{{> {{template_name}} }}

悲しいことに、それはうまくいきません。私もこれを試しました:

{{{content}}}

Template.content.content = function () {
var url_frag = Session.get("url_frag");
return Template[url_frag]();
}

これもうまくいきませんでした。助けてください!

編集:

うーん。おそらく、私のエラーはテンプレートの読み込みではなく、URL のキャプチャにあります:

var TodosRouter = Backbone.Router.extend({
    routes: {
        "*url": "main"
    },
    main: function (url) {
        Session.set("url", url.split('/'))
    }
});

url_frag が定義されていない場合、エラーが発生します...

var url_frag = Session.get("url_frag");

最初はこれでうまくいきますが、ウェブページを変更すると失敗します...

4

2 に答える 2

3

解決しました。私はそれからバックボーンを残しました

Template.content.content = function () {
var url = window.location.pathname.split('/');
var url_frag = url.pop()
return Template[url_frag]();

次に、htmlで:

<template name="content">
    {{{content}}}
</template>
于 2012-11-20T00:51:49.657 に答える
0

複雑なルートとフィルターもサポートするルーター スマート パッケージを大気圏で試すこともできます。

https://atmosphere.meteor.com/package/router

  1. meteoriteを使用してインストールnpm install -g meteorite
  2. routerを使用してインストールmrt add router
  3. {{renderPage}}本文に追加
  4. 多田!/loginレンダリングするようになりました{{> login}}
  5. こちらのドキュメントをお読みください: https://github.com/tmeasday/meteor-router
于 2012-11-21T03:08:49.977 に答える