2016-07-03 8 views
-1

現在、私のルートは、このようなものです。 cards/1/editのようなルートを編集可能にすることが適切であると私は期待しています。しかし、私はそれをどのように進めるかについては不明です。 cards/1/editのようなルートを作成すると、そのルート上で編集フォームを表示したり、バックエンドにPATCHリクエストを送信したりするにはどうすればよいですか。Emberで適切な編集ルートを作成するには?</p> <pre><code>this.route('cards', function() { this.route('all'); this.route('card', {path: ':id'}); this.route('new'); }); </code></pre> <p>私はカードの<code>edit</code>ルートを作りたい:

this.route('cards', function() { 
    this.route('all'); 
    this.route('card', {path: ':id'}, function() { 
    this.route('edit'); 
    }); 
    this.route('new'); 
}); 

はしかし、私はcards/edit/1のような単純なルートを作るならば、私はバックエンドにデータを送信することができるよしかし、それは、次のようなものがあるでしょう:

this.route('cards', function() { 
    this.route('all'); 
    this.route('card', {path: ':id'}); 
    this.route('new'); 
    this.route('edit', {path: ':id'}); 
}); 

これはそれを示すエラーがスローされますcards/cardはルートではありません。

+0

おかげで私はhttps://guides.emberjs.com/v2.6.0/routing/defining-your-routes/#toc_dynamic-segmentsのビットを読んでお勧めします。あなたの混乱の一部を解決するのに役立つかもしれません。 –

+0

そのリンクをありがとうございます。 –

答えて

0

これは私が使用した実際のルートです:

this.route('cards', function() { 
    this.route('all'); 
    this.route('card', {path: '/:card_id'}, function() { 
    this.route('edit'); 
    }); 
    this.route('new'); 
}); 

をそして、私はカードを変更するには、[編集]ルート(cards/1/edit)に行きますよ。 @Visualjeff

1

これは私が過去にやったことです:

this.route('cards', function() { 
    //An index route for cards is implied. 
    this.route('add', {path: '/add'}); 
    this.route('update', {path: '/update/:id'}); 
}); 

対応するURL(インプライド・カード/ index.hbsで始まる)は次のようになります。

希望これは、助け

ジェフ

+0

個々のカードをどのように表示しますか?私は、 '/ cards'がすべてのカードを表示し、'/cards/add'が新しいカードを追加し、 '/ cards/update/1'が更新用であると仮定しています。 '/ cards/1'のような個々のカードを見せたいのですが? –

+0

上記のすべてが正しいです。ユーザーは、更新ページ(cards/update/1)に移動して、カードのリストから特定のカードにドリルダウンすることができます。彼らが許可されているか、更新を許可されている場合は、更新アクセス権を提供しなければ、データを表示します(更新機能はありません)。読み取り専用フィールド、更新なしボタン。 – Visualjeff

+0

表示と編集のルートは、詳細を更新できる権限を持つユーザーと同じである必要があります。右? –

関連する問題

 関連する問題