2

私はおそらくドキュメントを間違って読んでいます。誰かが私の要点をチェックしてinvoices/index、テンプレートがレンダリングされない理由を教えてもらえますか?

ember.js ドキュメントを読むと、レンダリングする必要があると記載されています

posts
 ↳posts/index

invoices/index私の場合)。ただし、invoicesテンプレートはレンダリングされます。

ハンドルバー:

<script type="text/x-handlebars" data-template-name="application">
    <h1>Ember Committers</h1>
    <nav>
        {{#linkTo "index"}}Index{{/linkTo}}
        {{#linkTo "about"}}About{{/linkTo}}
        {{#linkTo "invoices"}}Invoices{{/linkTo}}
    </nav>
    {{ outlet }}
</script>

<script type="text/x-handlebars" data-template-name="invoices">
    <h1>Invoices</h1>
</script>

<script type="text/x-handlebars" data-template-name="invoices/index">
    <ul>
        {{#each invoice in invoices }}
        <li>{{#linkTo "show" invoice.id}}{{ invoice.id }}{{/linkTo }}</li>
        {{/each }}
    </ul>
</script>

<script type="text/x-handlebars" data-template-name="invoices/show">
    <p>Invoice - {{ name }}</p>
</script>

<script type="text/x-handlebars" data-template-name="phone">
    <p>Contributor - {{ title }}</p>
</script>

<script type="text/x-handlebars" data-template-name="about">
    <p>About {{ title }}</p>
</script>

<script type="text/x-handlebars" data-template-name="index">
    <p>Index</p>
</script>

JavaScript:

<script type="text/javascript" defer>
    var App = Ember.Application.create({
        LOG_TRANSITIONS: true
    });
    App.ApplicationView = Ember.View.extend({
        templateName: 'application'
    });

    App.Router.map(function () {
        this.route("about");
        this.resource("invoices", { path: "/invoices" }, function () {
            this.resource("show", { path: "/:id" });
        });
    });

    var invoices = [
        {id: 1},
        {id: 2}
    ];

    App.AboutRoute = Ember.Route.extend({
        setupController: function (controller) {
            // Set the IndexController's `title`
            controller.set('title', "My App");
        }
    });

    App.InvoicesIndexController = Ember.ArrayController.extend({
        invoices: invoices
    });

</script>
4

1 に答える 1

4

テンプレートに{{outlet}}タグを含める必要があります。とは のネストされたリソースであるinvoicesため、それらのテンプレートは、テンプレートで指定したアウトレット内でレンダリングされます。indexshowinvoicesinvoices

Ember.js ガイドのネストされたリソースの部分を見てください。

于 2013-03-05T02:36:08.593 に答える