簡體   English   中英

在angularjs中調用父控制器api之前加載子控制器

[英]Child Controller loading before Parent controller api call in angularjs

我使用的是角度1.6,我分別擁有一個父狀態和子狀態以及各自的控制器。 在我的第一個登錄頁面中,將有兩個鏈接分別稱為父狀態和子狀態。 當我被稱為父州時,它工作正常。 但是從登錄頁面調用子狀態,控制台中會出現一些錯誤,例如'id'undefined 我在父控制器中發出一個Restangular API請求。 此響應后,我需要加載子控制器嗎? 但是,當我直接調用子狀態時,子控制器會在父控制器api調用完成之前加載。 如何解決呢?

看看這個矮人。

https://embed.plnkr.co/aUnHIzuFV7GpiDuKyrwZ/

在父控制器中,保存來自API調用的承諾:

$scope.restPromise = Restangular.one('collections')
.get()
.then(function(data){ 
  $state.go("parentstate.childstate");
  $scope.myData = data;
  $scope.params={
  name:"my_name",
  type:"generic",
  data:data
  };     
});

在子控制器中,使用Promise等待API調用:

function ChildCtrl($scope) {
  $scope.restPromise.then(function() {
    console.log($scope.params);
    $scope.params.id=5;
    $scope.title = 'Child State';
  });
}

PLNKR上演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM