2016-07-03 4 views
-1

В настоящее время мои маршруты что-то вроде этого:Как сделать правильный маршрут редактирования в Ember?

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

Я хочу сделать edit маршрут для карт. Я надеюсь, что сделать маршрут, как cards/1/edit, будет правильным, чтобы сделать его доступным для редактирования. Но я не уверен, как это сделать. Если я сделаю маршрут, как cards/1/edit, как я могу показать форму редактирования на этом маршруте, а также отправить запрос PATCH на сервер.

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'}); 
}); 

корреспондент URLs (начиная с подразумеваемые карты/index.hbs) будет:

Надеется, что это помогает,

Джефф

+0

, то как вы показываете свою индивидуальную карту? Я предполагаю, что url '/ cards' покажет все карты и'/cards/add' для добавления новой карты и '/ cards/update/1' для обновления. что, если вы хотите показать отдельную карточку, например '/ cards/1'? –

+0

Все, что вы указали выше, является правильным. Пользователь может перейти от списка карточек к определенной карте, перейдя на страницу обновления (карты/обновление/1). Если они разрешены или разрешены для их обновления, они обеспечивают доступ к обновлению, иначе отображаются данные (без возможности обновления). Только поля для чтения, кнопка обновления отсутствует. – Visualjeff

+0

Вы имеете в виду, что маршрут показа и редактирования должен быть таким же, как у авторизованных пользователей, имеющих возможность обновлять данные. Правильно? –

 Смежные вопросы

  • Нет связанных вопросов^_^