2017-02-09 9 views
0

他のすべてのコントローラが一緒に必要とする機能を使用できるベースコントローラを作成しようとしています。下のコントローラでJavaScriptページを継承したり、インスタンス化したりします。子コントローラの親コントローラへのアクセス

私はオンラインで見て、別の提案を見たが、それは私のために働いていない。レイアウト上に2つのスクリプトを順番に並べました。私はベースコントローラを作成しました:

var app = angular.module('mainApp', []); 

私はそれが彼他のコントローラをint型にアクセスしようとしています:私は私の中で(将来的に機能を持っています)baseControllerへのアクセスを取得するにはどうすればよい

baseController.app 
    .controller('listsController'..... 

listControllerファイル?

答えて

2

一つの方法は、this答え状態

app.controller('ChildCtrl', function($scope, $controller) { 
    $controller('ParentCtrl', {$scope: $scope}); 
}); 

ようにそれをインスタンス化する$controllerサービスを使用することです。しかし、あなたが他のコントローラのすべては、私はあなたがどの意志サービスを作成することをお勧め必要な機能を持っていることを言うように代わりにこれらの共通機能を保持してください。ここで

は、サービスの例です:

app.factory('functionServ', function() { 

    var function1 = function(){ 
     //Do your thing 
    }; 

    var function2 = function(){ 
     //Do your thing 
    }; 

    return { 
     function1: function1, 
     function2: function2 
    } 
}); 

はその後、共通の機能を使用する必要がコントローラにサービスを注入

app.controller('ChildCtrl', ['$scope', 'functionServ', 
    function ($scope, functionServ) { 

    //Call the functions like: functionServ.function1(); 
}]); 
関連する問題