2016-09-12 5 views
0

Angular ui-routerを使っている人がオンラインで記事を投稿しているのを見ていますが、これらのタイプは明示的にコントローラ名を表示しないコードなので、コントローラを呼び出す方法を知っていますか?角度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; 
     } 

    }); 

上記の問題は、コントローラが

をヒットされていないですが、このコードは、明示的にコントローラー名とコントローラを使用していますようにそれはコントローラが表示されませんTRIED私のコード私はこのタイプのコードがコントローラにヒットする方法に問題があります。

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

どのように知っていますか?(私のために動作しません)あなたはUIルータ状態で二つの方法でコントローラを宣言することができ

+1

表示している例は、*インライン*コントローラー機能です。これらは外部コントローラを呼び出すのではなく、その場でその機能体のコントローラを作成しています。 – Claies

答えて

0

:メソッドの第1位で

//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 

、お使いのコントローラがインラインあなたのために作成され、#2にいる間、 UIルーターは、明示的に宣言されたコントローラーを探していますPortfolioController

+0

[OK]を、インラインコントローラの目的を理解していない、多くのコードを必要としない人のためだと思いますか? 2つのコントローラを指定できますか?機能やサービスを呼び出すのはどうですか? thx –

+1

あなたはそうです。ちょっとコントローラコードがあり、モジュールをモジュール化して別のコントローラに分割したくない場合は、インラインコントローラを使用できます。あなたは、どんなコントローラーの中からでも好きなようにサービスを呼び出すことができます。そのためには、普通のコントローラーで何ができるのですか(これは本質的に無名関数なので、このコントローラーを別の場所で再利用することはできません)。 2つのコントローラーを指定できるかどうかは疑問です。それはあいまいさを引き起こすでしょう – nikjohn

+0

Gracias Dustin、それを感謝します –

関連する問題