2015-02-27 3 views
1

Имейте интересную проблему, я пытаюсь увидеть, могу ли я решить с помощью углов ui router plugin. То, что я пытаюсь сделать, - сохранить состояние представления с помощью настраиваемого URL-адреса.Угловой ui-router, сохранить состояние по переменным url/url?

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

Так что я очень просто есть

$scope.test = false; 

, а затем на странице есть нг-клик, который переключает эту тестовую переменную между истинным и ложным. Итак, что я пытаюсь увидеть, могу ли я сохранить это состояние и передать его, так скажите, если я изменил его на true, я хотел бы сохранить URL-адрес, а затем перейти к этому, когда я приду к этому, это переменная затем будет изменен на истинный (а это по умолчанию ложь в контроллере)

Так что я думал, что я мог бы попробовать что-то вроде

url: "test/{form_id}" 

(я предполагаю, что это, как это работает), однако Возможно, я захочу передать больше, чем просто идентификатор. Сценарий BEST - я могу передать объект целиком через url (или, вернее, ссылку на один, я знаю, что передача объекта звучит глупо), но в противном случае я предполагаю, что с обеих сторон мне нужно будет создать способ сделать строку для идентификатор и способ интерпретировать его. Если бы я мог сделать это полиморфным, что было бы фантастично, однако мои первые шаги пытаются сделать это на низком уровне.

Итак, мое мышление - каждый раз, когда вы нажимаете, чтобы изменить, он устанавливает переменную, которая затем может быть установлена ​​на URL-адресе. Если URL-адрес предоставляется кому-то, кто зашел в это приложение и переходит к этому представлению, контроллер должен знать из URL-адреса, что ему необходимо изменить значение $ scope.test = true при загрузке. Мне интересно, можно ли победить это с помощью углового ui-router, и если так, если кто-то захочет дать некоторые рекомендации, я был бы очень благодарен. Спасибо за чтение!

ответ

1

Вы не можете действительно передавать ссылку, так как вы говорите о двух разных экземплярах приложения. Но вы можете JSON закодировать свой объект, urlencode и передать его по URL-адресу. Однако, если он слишком велик, он не будет работать во всех браузерах. Во многих случаях было бы «лучше» иметь более семантический URL-адрес, а не передавать большой старый blob, использовать значимые параметры и передавать их.

Документация $ routeParams находится в https://docs.angularjs.org/api/ngRoute/service/ $ routeParams

+0

Спасибо! И, к вашему моменту, я согласен с тем, что хочу сделать URL как можно меньше (но также отправить как можно больше информации). Я думаю, худший сценарий, в этом приложении я должен был бы передать 10-15 параметров в URL-адресе о представлении в игре, но было бы здорово позволить ему обрабатывать столько, сколько захотелось. – ajmajmajma

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