2016-09-26 61 views
0

我的情況有些條件有兩個獨立的實現如下如何基於在angularjs

function abc(){ 
    if(someCondition){ 

    // Implemention 1 

    } else { 

    // Implemention 2 

} 

}

這種情況在整個應用程序,但我想我的代碼是乾淨的。 我想在c#中有類似的地方,通過依賴注入我可以在運行時在兩個類之間進行選擇,並在Class1與「Implementaion 1」和Class2與「Implemention 2」之間切換。我正在使用angularjs 1.x

例如: 我在「實施2」的「實施1」和相同的20控制器和服務中有大約20個控制器和服務。你能幫我設計我的應用程序嗎?如果我的應用程序處於「模式1」,那麼它應該使用「實現1」,而在運行時如果它切換到「模式2」,則應該使用「實現2」

請給予一些sugestions。

回答

2

您可以通過使用$注射器當然做到這一點,這裏是代碼:

angular.module('myApp').controller('myCtrl', 
    ['$injector', '$scope', 
    function($injector, $scope) { 
     var service; 
     if (something) { 
      service = $injector.get('myService1'); 
     }else{ 
      service = $injector.get('myService2'); 
     } 
    }); 
+0

感謝您的答覆。 「實施1」中有大約20個控制器和服務,「實施2」中有相同的20個控制器和服務。你能幫我設計我的應用程序嗎?如果我的應用程序處於「模式1」,那麼它應該使用「實現1」,而在運行時如果它切換到「模式2」,則應該使用「實現2」 – Prateik