2016-04-12 11 views
2

属性値としていくつかのオプションを設定できるサードパーティのプラグインがあるとします。我々が持っているコントローラでAngularJS - サードパーティプラグインのデフォルトを配置する場所はどこですか?

<button options="prop.options"> 

/** 
* More about $scope.prop 
* - No need to access $scope 
* - It should access $window 
* - It's pretty large object (e.g. 100 lines) 
*/ 
$scope.prop = {options: {}}; 

私は可能な限り薄く、コントローラを維持したいと思いますが、このオブジェクトを移動するのに最適な場所は何ですか?このような場合には、何が良い習慣と考えられますか?

答えて

2

このタイプのデータでは、サービスを作成するのが一般的です。これにより、設定データの集中化されたソースが提供され、使用する必要のあるコンポーネントに注入することができます。

app.service('pluginOptions', function($window) { 
    return { 
     options: { 
      prop1: 'x' 
      prop2: 'y' 
     } 
    }; 
}); 

app.controller('myCtrl', function(pluginOptions, $scope) { 
    $scope.prop = pluginOptions.options; 
}); 
関連する問題