2013-06-14 2 views
1

Я хотел бы передать определенную переменную на новый вид в angularJS.Передать переменную области видимости на новый вид

Это то, что я пытаюсь сделать:

$scope.login_username_model = $scope.register_username_model; 
$location.path('/confirmation'); 

И на мой взгляд, подтверждение, я привязки поля формы для login_username_model.

Однако, когда я попал в окно подтверждения, моя форма пуста. Что я могу сделать, чтобы заполнить эту переменную? Или как я могу отладить это?

ответ

2

Если location.path вызывает новый маршрут с использованием другого контроллера, вы не можете передать переменную, как это, потому что контроллер создает новую область.

Ваш лучший выбор (как в 90% случаев) заключается в создании службы, которая вводится в обоих контроллерах. Затем вы можете передать информацию о пользователе в службу до того, как вы измените маршрут/представление, и затем верните его обратно, поскольку данные службы остаются постоянными по изменению маршрута.

Вот голые кости настройки: (не мной)

https://gist.github.com/exclsr/3595424

Если это тот же контроллер, есть установка в вашем маршруте конфигурации, которые могут работать:

reloadOnSearch: false 

Вы можете установить это для каждого маршрута.

+0

Это тот же контроллер. Однако, похоже, состояние контроллера сбрасывается после изменения $ location.path(). Делает ли angularJS таким образом? –

+0

Да, по умолчанию изменения местоположения необходимо перезагрузить. Вы можете установить reloadOnSearch: false в конфигурацию маршрута. – Narretz

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