2016-10-04 2 views
3

Я использую угловой ui-маршрутизатор и имею родительское абстрактное состояние («домашний») и два дочерних состояния («home.ports» и «home.editPort»). государство. «home.state» - это состояние по умолчанию, поэтому на странице обновления, когда home.state загружает его, сначала запускается родительское («домашнее») состояние, которое, в свою очередь, вызывает HTTP-запрос в свойстве разрешения. Мое дочернее состояние позволяет мне вносить изменения на сервере и обновлять список родительского состояния. Таким образом, проблема, когда я иду к детскому состоянию («home.editPort») и вернуться к home.ports его не вызывая домашнее состояния, чтобы принести обновленныйдочернее состояние не запускает родительское состояние в угловом

.state('home', { 
    url: "/home", 
    templateUrl: "dest/partials/home/_home.html", 
    controller: "HomeController", 
    abstract : true, 
    data: { 
     requireLogin: true 
    }, 
    resolve: { 
     // making an http request 
     jqTreeData : ['httpService', 'BASE_HOME_URL', function (httpService, BASE_HOME_URL) { 
      var obj = { 
        url : BASE_HOME_URL + "emulationDetails", 
        responseType : "json", 
        method : "GET" 
       }; 
      return httpService.makeAjax(obj); 
     }] 
    } 
}) 
.state('home.ports', { 
    url: "/ports", 
    //templateUrl: "dest/partials/home/ports/_portList.html", 
    template: "<custom-Table tbl-Caption='Port Listing'></custom-Table>", 
    controller: "PortsListController" 
}) 
.state('home.editPort', { 
    url: "/editPort", 
    template: "<h1>Edit ports</h1>" 
}); 
+0

Как вы перенаправляете состояние ребенка? –

+0

У меня есть несколько ссылок (якорный тег) в моем приложении, когда пользователь нажимает на любое из них, соответствующее состояние запускается ($ state.go (...)) –

ответ

0

resolve только вызывается, когда входное состояние введено - потому что вы перемещаетесь между home.ports и home.editPort, и оба являются дочерними состояниями home - вы никогда не покидаете состояние home - так что resolve не будет вызвано снова - вы все еще в этом состоянии.

Возможно, вам потребуется выполнить другой вызов службы для извлечения данных, которая запускается после завершения задач в состоянии home.editPort.

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