2014-11-13 9 views
0

Мне интересно, как получить параметр (идентификатор) моего маршрута редактирования в Ember.js.Получить результат для редактирования route (/ foobar/2/править)

Вот как я определил мой маршрут:

this.resource('accounting', function() { 

    this.resource('accounting.requests', { path: '/requests' }, function() { 
    this.route('new'); 
    this.route('archived'); 
    }); 
    this.resource('accounting.request', { path: '/request/:request_id' }, function() { 
    this.route('edit'); 
    }); 

}); 

Теперь я хочу, чтобы принести модель по его ID на этом редактирования маршрута /accounting/request/3/edit:

App.AccountingRequestEditRoute = Ember.Route.extend({ 

    model: function(params) { 
    return this.store.find('request', params.request_id); 
    } 

}); 

Но это не работает, потому что params является пустой.

Это работает, как ожидалось, но редактировать маршрут не будет:

App.AccountingRequestRoute = Ember.Route.extend({ 

    model: function(params) { 
    return this.store.find('request', params.request_id); 
    } 

}); 

ответ

1

Когда вы в детском маршруте вы можете использовать this.modelFor, пример:

App.AccountingRequestEditRoute = Ember.Route.extend({ 

    model: function(params) { 
    return this.modelFor('request'); 
    } 

}); 

Потому что для того, чтобы идти до request.edit, вы должны предоставить идентификатор или объект своему родительскому ресурсу, request, либо прямо идущий на маршрут, передающий URL-адрес браузерам, либо косвенно путем перехода от других маршрутов, которые со ссылкой на редактирование.

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