2016-01-10 2 views
0

Можете ли вы каким-то образом получить $ stateParams без наличия <ui-view> -tag в своем html?

В принципе, я хочу, чтобы этот код работал:

.config([ 
    '$locationProvider', 
    '$stateProvider', 
function($locationProvider, $stateProvider) { 

    $locationProvider.html5Mode(true); 

    $stateProvider 
    .state('schedules_show', { 
    name: 'edit_schedule', 
    url: '/schedules/:id/edit' 
    }); 

}]) 

Так что я могу принести: идентификатор из любого другого контроллера, который вызывается через $ stateParams.

Дополнительная информация: Я не хочу использовать $ stateParams для создания ссылок или для перемещения по моему приложению, потому что мое приложение является гибридом RoR и Angular.js. Я меняю виды на стороне сервера на общие ссылки. Я просто хочу использовать угловой ui-router, чтобы получить некоторые значения из URL-адреса для использования в части Angular.js моего приложения (в данном случае: id). Поэтому, потому что я не хочу перемещаться по Angular и не хочу использовать его зависящие от состояния контроллеры или представления, что опять же является причиной того, что я не хочу иметь <ui-view> -tags в своем HTML.

Проблема решена: Я думаю, что мой подход через angular-ui-router был неправильным. У меня есть решение сейчас, когда я просто передаю параметр из HTML через ng-init в контроллер, но он не отвечает на мой вопрос, поэтому я думаю, что это должно быть закрыто.

+0

Что вы имеете в виду без бирки? –

+0

Извините, я написал там, и SO сделал это интерпретированным как HTML –

+0

Итак, почему вы используете Angular? – Andrew

ответ

0

Если я понял вас, вам нужны параметры состояния. И ответ: да, вы можете. Первый способ - использовать параметры URL: /url/suburl/:param1/:param2/:paramN. Второй способ (если вы не хотите видеть свои параметры в URL-адресе), используйте в своем штате опцию params. Затем просто вызовите свое состояние с этими параметрами внутри. Пример:

.state('schedules_show', { name: 'state1', url: '/state', params: { param1: null, param2: null } });

Здесь, в состоянии конфигурации null для не назначать начальное значение; и называют это состояние с

ui-sref="state1({ param1: 'test', param2: 10 })"

Затем в закачиваемых $stateParams объекте вы можете получить значение этого Params'

Другого возможным решением является использование resolve в вашем состоянии предоставить конкретный Params к контроллеру, назначенному с этим состояние

Более подробная информация о resolve

ли это имеет смысл?

+0

Это имеет смысл, но, к сожалению, это не ответ на мой вопрос. –

+0

Почему? Вам нужно решение без 'ui-view'. Я ошибаюсь? Если нет, это возможно. В этом случае вам не нужно включать 'ui-view'. – Andrew

+0

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

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