オプションのリストを含むダイアログウィンドウを開くことができるSPAを構築しています。ユーザーはオプションを選択できます。次に、そのオプションをアプリケーションのメインビューに添付する必要があります (例:ダイアログからAを選択し、フロントページの にAを添付し<ul>
ます)。
ダイアログは独立しており、独自のモジュールとコントローラーがあります。
var AdviceList = angular.module('adviceList', []);
AdviceList.controller('AdviceListCtrl',function($scope,$http){
//...
});
AdviceList.provider('$adviceList',function(){
this.$get = function ($rootScope,$document,$compile,$http){
function AdviceList(){
// ...
}
AdviceList.prototype.open = function(){
// ...
}
})
選択したオプションのリストをアプリケーションの他の部分と共有する方法がわかりません。
私のアプローチは、配列を作成activeOptions
してコントローラーのスコープにアタッチすることでしたが、その場合、プロバイダーには届きません。
AdviceList.controller('AdviceListCtrl',function($scope,$http){
$scope.activeOptions = [];
$scope.addAdvice = function(){
$scope.activeOptions.push(); // push the chosen option
}
});
AdviceList.provider('$adviceList',function(){
this.$get = function ($rootScope,$document,$compile,$http){
return{
AdviceList: function(){
return new AdviceList();
},
getActive: function(){
// no access to the controllers scope here
}
}
}
})
データアプリケーション全体を共有し、必要な機能を実装するための推奨されるベストプラクティスの方法は何ですか?