私はeコマースサイトを構築しています(shopifyに基づいています)、私はクイックショッピングカート、ウィッシュリスト、フィルタリング製品、およびその他の小項目はほとんどありません。私は最初に1つの大きなアプリケーション(ルーティングとすべてを持っていた)を使用しましたが、完全なREST APIを持っていなかったときは制限が少しありました。複数のangular.jsアプリ間で1つのサービスを共有
角度アプリ(カートサービスなので、ミニカートなどに表示されるクイック追加ボタンを使用できます)間で共有したいサービスがいくつかありますが、私はそうではありませんこれについて行くべき最善の方法(道があれば)を確かめてください。サービスとモジュールを共有しても、アプリ全体で同じ状態が維持されるわけではありません。
私は自分の手で試しましたが、私は両方のアプリの間で状態を更新していないようです。以下は私が使用しようとしたjavascriptです。これは、HTMLを伴うjsfiddleでもあります:http://jsfiddle.net/k9KM7/1/
angular.module('test-service', [])
.service('TestService', function($window){
var text = 'Initial state';
if (!!$window.sharedService){
return $window.sharedService;
}
$window.sharedService = {
change: function(newText){
text = newText;
},
get: function(){
return text;
}
}
return $window.sharedService;
});
angular.module('app1', ['test-service'])
.controller('App1Ctrl', function($scope, TestService){
$scope.text = function(){ return TestService.get() }
$scope.change = function(){ TestService.change('app 1 activated') }
});
angular.module('app2', ['test-service'])
.controller('App2Ctrl', function($scope, TestService){
$scope.text = function(){ return TestService.get() }
$scope.change = function(){ TestService.change('app 2 activated') }
});
var app1El = document.getElementById('app1');
var app2El = document.getElementById('app2');
angular.bootstrap(app1El, ['app1', 'test-service']);
angular.bootstrap(app2El, ['app2', 'test-service']);
すべてのヘルプは
に起こります。複数の共有サービスで$ window.rootScopesのことをどうやって提案しますか?私は慎重でないと二倍になると思うだろう –
ああ、心配しないで、私はそれを行う良い方法を考え出した - 共有モジュールではなく、アプリケーションの実行ブロックに入れよう。 –
@TomBrunoliあなたは精巧にすることができる何をしたの?共有モジュールからサービスの実行ブロックにエラーなしでサービスコードをどのように移動しましたか? – kevin11