2016-10-04 6 views
-1

問題が1つあります。私は1つのテンプレートURLを持っていますが、状態の変種がたくさんあります。私は1つの親状態を持ち、他の状態は子です。今では、このようseens:別の(親)コントローラロジックを派生状態(angularjs ui-router)に注入します。

angular 
    .module("StN") 
    .config(config); 

function config($stateProvider) { 
    $stateProvider 
     .state("invoice", { 
      url: "/invoice", 
      templateUrl: "/Scripts/js/stn/invoice/invoice.html", 
      controller: "invoiceController as vm" 
     }) 
     .state("invoice.custom", { 
      url: "/castom" 
     }) 
     .state("invoice.search", { 
      url: "/search?Status?Invoice?" 
     }); 
} 

そして私は、私は現在の状態名を確認し、スイッチケース構造を、持っているといくつかの違いロジックに

angular 
    .module("StN") 
    .controller("invoiceController", invoiceController); 

function invoiceController($http, $state) { 
    switch (state.name) { 
    case "invoice.search": 
     //first logic 
     break; 
    case "invoice.custom": 
     //second logic 
     break; 
    case "invoice.status": 
     //third logic 
     break; 
    } 
} 

を行うコントローラで、私は、各状態のための別のコントローラを持っている必要がありますこのコントローラは親コントローラ(invoiceController)のロジックを持たなければなりません。どうやってやるの?

.state("invoice", { 
     url: "/invoice", 
     templateUrl: "/Scripts/js/stn/invoice/invoice.html", 
     controller: "invoiceController as vm" 
    }) 
    .state("invoice.custom", { 
     url: "/castom" 
     controller: "DerivedinvoiceController as vm" //but it must have logic of base controller 
     }) 
+0

あなたは、私が考えるParentControllerロジック http://stackoverflow.com/questions/18461263/can-an-angularjs-controller-inherit-from-another-controller-in-the-same-module –

+0

を継承することができますすることができますそれは可能ですが、私の上司は、それは最高の変種ではない(彼はそれがテストの必要性だと言った) –

答えて

0

あなたができる最善。このロジックをFactoryに分け、親コントローラとその子ノードでこのファクトリを使用します。

+0

ありがとう、私はしようとします –

関連する問題