2016-10-05 11 views
0

2つの部分を持つページが1つあり、どちらの部分もお互いに依存しています。だから私の質問は、私はそれのための2つの異なるコントローラを作成する必要があります(はい、次に私はそれらの間に$スコープを共有する方法)または両方のために1つのコントローラを使用します。同じページの2つの部分に2つのコントローラーを使用する方が良いですか?

+0

なぜ2つのコントローラを使用すると思いますか?心配の分離のために – Weedoze

+0

、我々は2つの別々の複雑なUI画面を持っているので。 –

+0

私は3つのコントローラーが必要だと思います。 親が1人、それぞれが2人です。 –

答えて

1

いずれかを使用できます。

コントローラが1つで、ページの両方の部分で有効範囲があります。

2つのコントローラとサービスを使用します。コントローラ間でデータを共有するには、.serviceと.factoryにチェックインする必要があります。サービスの例:

.factory('storageService', function() { 
    var vars = []; 
    var storageService = {}; 

    storageService.set = function (key, value) { 
     vars[key] = value; 
    }; 

    storageService.get = function (key) { 
     return vars[key]; 
    }; 

    return storageService; 
}) 

$ scopeから任意のものを指示に渡すことができるディレクティブもあります。あなたのディレクティブのhtmlでは、スコープと呼ばれる属性を設定し、スコープ内に定義された変数を渡します。

<some-directive scope="data"></some-directive> 

.directive('someDirective', ['$rootScope', 'storageService', function ($rootScope, storageService) { 
    return { 
     restrict : 'AE', 
     scope  : { 
      scope: '=' 
     }, 
     replace : true, 
     templateUrl: 'some/path', 
     link  : function ($scope, element, attr) { 
      $scope.setResetValue = function(value){ 
       storageService.set('resetValue', value); 
      } 
     } 

    }; 
}]) 
関連する問題