1

私はこのようなルーターを持っています

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

さまざまなルートやリソースへのリンクを生成するために私はこれを持っています

<nav>
    {{#linkTo "invoices.index"}}Invoices{{/linkTo}}
    {{#linkTo "invoices.show" 1}}Invoice{{/linkTo}}
    {{#linkTo "invoices.create"}}New invoice{{/linkTo}}
</nav>

なぜinvoices.showshowリソースの名前に使用してからそれを参照する必要があるのに、ルートにinvoices.show使用してからそれを参照することができるのですか?createinvoices.create

理想的には私のルーターは

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

また、請求書リソース内にネストされているため、リソース名の前に自動プレフィックスが付けられます。右?

4

1 に答える 1

1

はい、ネストされたリソースは名前を積み重ねることができ、ドット表記でネストされたルートを参照できるはずです。

ただし、次のようなことをしたいと思うでしょう:

    this.resource("invoices", { path: "/invoices" }, function () {
        // invoices.show
        this.resource("show", { path: "/:id" }, function() { 
             // invoices.show.update
             this.route("update", { path: "/edit" });
        });
        // invoices.create
        this.route("create");
    });

更新操作は、show ルートに提供されたオブジェクトに依存するためです。

基本的に、親ルートで使用される同じリソースまたはリソースのサブセットに依存するネストされた要素は、リソース マッピングとして定義する必要があります。リーフ ノードは基本ルートとして定義できます。

于 2013-03-06T01:28:28.593 に答える