2013-10-10 3 views
1

У меня есть вложенный редактировать маршрут для одного из моих ресурсов:Создать вложенный маршрут с динамическим сегментом в ember.js

@resource 'organization', path: 'organizations/:organization_id', -> 
    @resource 'organization.edit', path: '/edit' 

я ссылка на него, как это (используя Emblem.js):

linkTo 'organization.edit' organization | Edit 

к сожалению, это приводит к URL, как:

/organizations/4# 

Скорее, чем ожидаемый:

/organizations/4/edit 

Любая идея, почему это происходит? Я много экспериментировал с синтаксисом маршрута. Удаление path для organization.edit ничего не делает, как это делает полный path: 'organization/:organization_id/edit.

ответ

1

Вы должны быть в состоянии получить желаемый результат, используя этот тип гнездования структуры:

App.Router.map(function() { 
    this.resource("organizations", function(){ 
    this.resource("organization", { path: "/:organization_id" }, function(){ 
     this.route("edit"); 
    }); 
    }); 
}); 

JSBin example

+1

Ваш JSBin делает трюк. На самом деле, я даже не гнездиться внешнепризматическим большинство 'organizations'. Моя ошибка была, используя синтаксис 'linkTo 'organization.edit' organization' вместо' linkTo 'organization.edit' this'. Прочтение кода JSBin показало мою ошибку. Спасибо, что набрали это! – nullnullnull

0

Вы находитесь на правильном пути, но @resource действительно предназначены для объектов, например организаций. Если вы определяете действие (не вложенные ресурсы) вы хотите использовать @route, т.е .:

@resource 'organization', path: 'organizations/:organization_id', -> 
    @route 'edit' 

Я считаю, что должно дать вам ожидаемое поведение/маршрутизации.

+0

Спасибо за быстрый Ответить! К сожалению, эта проблема не устранена. Если у вас есть другие идеи, отправьте их мне по почте. – nullnullnull

0

Почему бы не использовать что-то вроде этого:

@resource 'organization', -> 
    @route "edit", 
    path: "/:organization_id/edit" 
Смежные вопросы