2015-04-15 3 views
1
<li ui-sref=".overview" 
    ui-sref-active="currentState" 
    ui-sref-opts="{reload:true}">Flavors</li> 

Config:как перезагрузить состояние ребенка в угловых JS

.state('azure.overview', { 
    url:'/azureOverview', 
    templateUrl :'partials/azure/azureOverview.html', 
    controller : 'azureOverviewCtrl' 
    })   
controller $scope.init() { } 

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

+0

Можете ли вы показать конфигурацию и контроллер ??? – Reena

+0

.state ('azure.overview', { \t \t URL: '/ azureOverview', \t \t templateUrl: 'обертоны/лазурь/azureOverview.HTML», \t \t контроллер: '' azureOverviewCtrl \t}) контроллер $ scope.init() { получить данные от сервера } – Lakshmi

+0

whay вы проходя .flavors как StateName – Reena

ответ

1

Eсть a working plunker

Ранее по этому вопросу: in ui-router, how to re-resolve only the most local state?, я создал this plunker

, который показывает, что мы можем использовать params : {}, чтобы определить параметр состояния, который не указан в url .. но может использоваться как «change trigger», заставляя только дочернее состояние перезаряжаться.

Here мы можем видеть эти состояния:

.state('azure', { 
     url: "/azure", 
     templateUrl: 'tpl.azure.html', 
     controller: 'azureOverviewCtrl', 
    }) 
    .state('azure.overview', { 
     url: "/overview", 
     params: { updater : 1, }, 
     templateUrl: 'tpl.overview.html', 
     controller: 'OverCtrl', 
    }) 

Теперь мы можем создать этот перезарядка ссылку, которая просто отправляет инкрементируется номер Updater:

<li ui-sref-active="blue"> 
    <a ui-sref="azure.overview({updater: ($stateParams.updater + 1) })" 
    >Flavors <b>reloading</b></a></li> 

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

Проверить это here

+0

перезагружается, но ui-sref-active не работает, я тоже редактировал в plunker, но он не работает, вы можете дать зол для этого Спасибо заранее – Lakshmi

+0

Дайте мне сек, постарайтесь показать вам –

+0

@ Radim конечно, но мне нужно sol plz – Lakshmi

0

Родное, встроенные функции УИ-маршрутизатора:

при плавании среди детей, форма одного ребенка состояние еще одного ребенка, родители НИКОГДА не перегружается

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

{ reload: true} 

Вы также можете найти подобный тип решения в этой должности AngularJS UI Router $state reload child state only

+0

Правильно, но я хочу перезагрузить одно и то же состояние, как я могу это сделать? – Lakshmi

+0

Смотрите эту https://gist.github.com/IlanFrumer/8281567 – Reena

+0

  • reload
  • Используя этот фрагмент, я обработал перезагрузку. но ui-sref-active не работает] – Lakshmi

    1

    @Lakshmi Вы можете иметь свой ответ здесь:

    С 0.2.14 у вас также есть возможность просто перезагрузить текущее состояние, а не родительский.

    Таким образом, $state.go(people.search, {}, {reload: true}); перезагрузит состояние people, а также все его дочерние элементы.

    В то время как $state.go(people.search, {}, {reload: "people.search"}); не перезагружает состояние people, но перезагрузит people.search и его детей.

    +0

    Это не совсем соответствует его примеру. Он использует ui-sref, а не $ state.go ... – AlxVallejo

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