問題タブ [angularjs-provider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
149 参照

angularjs - AngularJS - プロバイダー、サービス、工場を外部から汚染する

スコープにのみ割り当てていると思っていたプロパティで、意図せずサービスを汚染してしまいました。例:

この動作を示す Plunker を次に示します。

https://plnkr.co/edit/nDkNfKmQRtcBuJ0NUcHo?p=preview

オブジェクトを関数に渡す場合、JavaScript は参照渡しであることを私は知っています。これは、それらのオブジェクトがディープ クローンされていない限りです。

私は、サービスの外部の何かが、そのサービスによって公開されたオブジェクトなどにアクセスできるが、値によってのみアクセスできると想定していました。そのサービスへの変更は、そのサービスによって提供される API によって行われる必要があります。これを行う唯一の方法はangular.copy、上記の例で例を使用することですtestCtrl.testService = angular.copy(testService);

これは意図した動作に違いないと思います。もしそうなら、パフォーマンス上の利点を除いて、これは欠点だと思います。

AngularJS が「ブラックボックス」プロバイダーではなく、この動作を許可するのはなぜですか?

0 投票する
1 に答える
1902 参照

javascript - angular プロバイダー エラー - $get ファクトリ メソッドを定義する必要があります

このコーヒー スクリプト コードは角度プロバイダーを作成しようとしていますが、次のメッセージが表示されます: プロバイダー 'ItemsProvider' は $get ファクトリ メソッドを定義する必要があります。

$get メソッドを設定しました。何が起こっているのか考えていますか?

次のメッセージでロードに失敗します。

編集: これは生成されたJavaScriptです:

0 投票する
1 に答える
1990 参照

angularjs - Angularjs : 異なるモジュールで共通のサービスを使用する

異なるモジュールに同じサービスを使用しようとしています。多くのモジュールがあるので、親モジュールにそれらを注入しようとしました。このようなもの:

n 個のモジュール すべてに共通のサービスは次のようになります。

現在、すべてのサブモジュールでこのサービスを使用する方法がわかりません。
このサービスをどのモジュールに関連付けるべきですか?
やってみapp.service('myService',function(){...})ましたが、うまくいきませんでした。
どこが間違っていますか?

EDIT 1:さらに、 service
を使用して、これらすべてのサブモジュールと変数を共有しようとしています。変数を共有するサービスを使用して正しいことを行っているのか、このジョブに プロバイダーまたはファクトリを使用する必要があるのか​​ わかりません。

EDIT 2:
これらのリンクを見つけましたが、答えを把握できませんでした。それらを参照して、私の答えを提供してください
AngularJSの複数のモジュール間で変数を共有する方法
異なるモジュールにあるコントローラー間で変数を渡す

0 投票する
2 に答える
13235 参照

angularjs - angularjs コンポーネントで解決を使用する

ページをレンダリングする前に、顧客のリストを解決しようとしています。

ここに解決メソッドがある状態プロバイダーの参照があります。

コンポーネントが続き、解決から #test を呼び出す必要があります。コンソールに「nihao」という単語を出力するだけです。

ただし、次のエラーが発生し続けます。

解決関数が実行されていることがわかりますが、それは機能しますが、メソッドは挿入されません! 何か案は?