2017-01-19 4 views
3

Как сохранить параметры url для состояния после обновления страницы?Угловой UI маршрутизация параметров свободного URL после обновления страницы

У меня есть такое состояние

.state('App.State', { 
     abstract: true, 
     url: '/App/:param', 
     templateUrl: '/page.html', 
     controller: 'pageCtrl', 
     params: { 
      'param': null, 
     }, 

    }) 

я иду в это состояние с помощью этой команды

<a ui-sref="App.State({param: paramName})">{{paramName}}</a> 

Я хожу в состояние, с Params, что я хочу, но когда я обновите страницу (f5) Я потерял параметры, как сохранить их после обновления страницы?

ответ

0

Для сохранения значения необходимо добавить параметры в URL, как это:

url: '/App/:param' 

И удалить свойство Params.

1

Существует plunker, который приводит к удалению abstract: true из кода:

.state('App', { 
     template: '<div ui-view ></div>', 
}) 
.state('App.State', { 
     //abstract: true, 
     url: '/App/:param', 
     templateUrl: 'page.html', 
     controller: 'pageCtrl', 
     params: { 
     'param': null, 
     }, 
    }) 

И тогда мы можем использовать любой вид URL (даже F5 позже), чтобы добраться до этого состояния

В случае, если мы хотим сохранить это абстрактное состояние, мы не можем перейти к нему. Нам нужен его ребенок. Существует other plunker

.state('App', { 
     template: '<div ui-view ></div>', 
}) 
.state('App.State', { 
     //abstract: true, 
     url: '/App/:param', 
     templateUrl: 'page.html', 
     controller: 'pageCtrl', 
     params: { 
     'param': null, 
     }, 
}) 
.state('App.State.Child', { 
     url: "/", 
     template: '<h4> App.State.Child </h4>', 
}) 

пользовательский интерфейс-sref не может быть

<a ui-sref="App.State({param: 'xxx'})"> 
    -- not working while abstract 

мы должны идти к ребенку

<a ui-sref="App.State.Child({param: 'yyy'})"> 

И это будет работать тогда

+0

Будет ли второй подход (держать абстрактное состояние) работу нескольких Params, т.е. PARAMS объект имеет два ключа, но отображается только один на маршруте? [link] (http://stackoverflow.com/questions/41757390/reload-not-working-when-passing-multiple-params-in-ui-router-state) –

+0

Пункт есть .. ** url ** is единственная часть - которая выдержит обновление * (или отправит URL-адрес и откроет его позже) * Ответ НЕТ. Остается только материал 'url'. Надеюсь, это немного помогает;) наслаждайтесь UI-Router –

+0

, пожалуйста, взгляните на этот [вопрос] (http://stackoverflow.com/questions/41757390/reload-not-working-when-passing-multiple-params-in- UI-маршрутизатор-состояние). Можете ли вы предложить лучший способ добиться того же? –

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

  • Нет связанных вопросов^_^