私はシンプルな設定をしていますが、私はおそらく "JSプログラマのように思っていません"。ページごとに複数のコントローラがあり、すべてがPHPにajaxingするルーチンを呼び出します。下の簡略化されたバージョン。それは機能していますが、私は明らかに正しく設定していません。なぜなら、これらのサービスオブジェクトをすべて1回の呼び出しに渡す必要があるからです。これはどのように設定する必要がありますか?AngularJS:サービスへのグローバルアクセス?
app.controller('ctrlA', $scope, $http, $location, $sce) {
app.db_read($scope, $http, {param: 1}, $sce,
function() {// succeeded},
function() {// failed}
)
}
app.controller('ctrlB', $scope, $http, $location, $sce) {
app.db_read($scope, $http, {param: 1}, $sce,
function() {// succeeded},
function() {// failed}
)
}
...
app.db_read = function($scope, $http, payload, $location, $sce) {
$http.post('url', {request: 'read', data: payload})
.then(function(data) {$scope.data = data},
function(error) {$scope.displayError = $sce.trustAsHtml(error)}
)
}
私はこの質問を見て:Instantiate global services in AngularJS ...答えは、として表示され、「サービスが角でシングルトンなので、あなたがそれらを必要とする、これまであなただけのどこにそれらを注入しなければなりません。」 残念ながら、db_read関数にサービスを "注入"する方法がわかりません。ご協力ありがとうございました。
あなたが持っているものは、道オフトラックです。 Angularにはサービスであり、コントローラや指令のような別のコンポーネントに注入するモジュールコンポーネントがあります。チュートリアルやブログ記事は、Web上や、サービスの使い方についての角度のある文書サイトにたくさんあります。彼らが何であり、どのように使用されているかをより根本的に理解するために、いくつかのことを学ぶことをお勧めします。 'app.db_read'も完全にオフベースです – charlietfl
答えがない場合は、なぜコメントしますか? – AngularNewbie
これはコード作成またはチュートリアルサービスではないためです。それを個人的なものにしないでください...建設的な提案をあなたに与えようとしています。ウェブ開発の主要な部分の1つが研究と学習をしています...常に – charlietfl