簡體   English   中英

角度ui路由器狀態如何調用控制器

[英]angular ui-router state how is controller being called

我看到人們在網上發布有關使用Angular ui-router的信息,我看到這些類型的代碼甚至都沒有明確顯示控制器名稱,所以怎么知道該怎么調用控制器呢?

state('new-rp', {
  url: '/new/:portfolioId',
  templateUrl: 'new.html',
  controller: function($scope, $stateParams) {
  $scope.portfolioId = $stateParams.portfolioId;
  }
})

我嘗試過的我的代碼沒有像上面那樣列出控制器

.state("deviceDetail", {
        url: "/devices/:DeviceId",  // param is required which specific device id
        templateUrl: "app/devices/deviceDetailView.html",  // ui elements 
        controller: function($scope,$stateParams) {
            $scope.DeviceId = $stateParams.DeviceId;
        }

    });

問題是控制器未命中

但是此代碼明確使用了控制器名稱,並且控制器被命中,因此,我無法確定這種類型的代碼將如何命中控制器

controller: function($scope,$stateParams) {
            $scope.DeviceId = $stateParams.DeviceId;
        }

它怎么知道? (對我不起作用)

您可以通過兩種方式在UI路由器狀態中聲明控制器:

//1
.state('new-rp', {
  url: '/new/:portfolioId',
  templateUrl: 'new.html',
  controller: function($scope, $stateParams) {
  $scope.portfolioId = $stateParams.portfolioId;
  }
})

//2
 .state('new-rp', {
  url: '/new/:portfolioId',
  templateUrl: 'new.html',
  controller: PortfolioController
})
.
.
.
//PortfolioController definition

在方法#1中,為您內聯創建了控制器,而在方法#2中,UI Router正在尋找一個顯式聲明的控制器,名為PortfolioController

暫無
暫無

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

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