問題タブ [angularjs-factory]
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.
angularjs - AngularJS : ファクトリの代わりにサービスを使用する場合
ここで我慢してください。私は次のような他の答えがあることを知っています: AngularJS: Service vs provider vs factory
ただし、いつファクトリよりもサービスを使用するかはまだわかりません。
私が言えることから、ファクトリは、複数のコントローラーから呼び出すことができる「共通の」関数を作成するために一般的に使用されます:共通のコントローラー関数の作成
Angular のドキュメントは、サービスよりも工場を好むようです。彼らは factory を使用するときに「サービス」とさえ呼んでいますが、これはさらに混乱を招きます。http://docs.angularjs.org/guide/dev_guide.services.creating_services
では、いつサービスを利用するのでしょうか?
サービスでしかできないこと、またはもっと簡単にできることはありますか?
舞台裏で何か違うことはありますか?パフォーマンス/メモリの違いは?
これが例です。宣言の方法を除けば、それらは同じように見えますが、なぜ一方と他方を行うのかわかりません。http://jsfiddle.net/uEpkE/
更新:トーマスの回答から、サービスはより単純なロジック用であり、ファクトリはプライベート メソッドを使用したより複雑なロジック用であることを暗示しているように思われるため、以下のフィドル コードを更新しましたが、どちらもプライベート関数をサポートできるようですか?
javascript - WebSql から AngularJs でデータを取得する
私はAngularJs
、JQuery Mobile
を使用してAndroidアプリを開発しています。JQM-AngularJS Adapter
サーバー側では、. 今、私はランタイムからデータを取得したいのですが、初期化できませんでしたJayData
DataBase
WebSql
webSql
DropDowns
DropDowns
ドロップダウン コード
Angular と JayData コード
実行時にデータが必要なのですが、どうすればよいですか?
angularjs - $location.path は AngularJS のファクトリで変更されません
私の工場は次のようになります。
ログを吐き出しますが、パスは変更しません。これを実現するにはどうすればよいですか?
angularjs - Angular.js と ui-router を使用してファクトリのパラメータを使用して子状態に移動する方法は?
アプリ全体でパラメーターを保持するために、開始時にデフォルトのパラメーターを持つファクトリーによって提供されるパラメーターを使用して、Angular ui-router を子状態にナビゲートしようとしています。
初期ロード時にデフォルトのホームページとそのリンクが工場によって提供されるデフォルトの動物に移動するようにしたいと思います。その後、工場によって保存されるリストから動物を選択するときに、ユーザーは動物とパラメータを更新できます。彼らは動物のページに戻ります。これは、デフォルトではなく、すべての動物パラメーターを使用して選択した動物です。そうすれば、獣医のページに行くと、獣医のページは選択されたすべての動物のパラメーターを確認でき、動物のページに戻ったときに、戻るボタンをクリックするか動物のリンクをクリックしても、選択された動物です。ばかげた比喩を許してください。
app.js:
動物.js
Zoo.js -- ファクトリー
Zoo.js -- コントローラー
zoo.animals.animal.html
この index.html を使用するかどうか
「抽象的な状態に移動できません」というメッセージが表示されます-問題ありません。しかし、このindex.htmlを試してみると
それからそれはちょうど行く
提供されたanimalIdを取得せずに。または、そこから離れて戻ると、消えてしまいます。私が達成しようとしていることが理にかなっていることを願っています。
追記:あと一歩!index.html リンクを次のように変更すると、
app.js when attribute to:
次に、に移動します
また
オオカミが選択されている場合は、戻る矢印または別のページの動物リンクを使用してください。または、更新すると、デフォルトの動物 (羊) のページに移動します。しかし、今あなたが
ページに移動し、動物のリンクをクリックします
(データがロードされてファクトリにあるが、選択リストから選択されるまで表示されないという点で、別の奇妙な出来事があります。)
angularjs - AngularJS : コントローラでファクトリが常に未定義なのはなぜですか?
私の工場はコントローラーで定義されておらず、その理由がわかりません。説明する簡単な例を作成しました。
ここでアプリを作成します。
このダミーの例では、アラート ボックスを表示する単純なことを行うファクトリを構築したいと思います。これを行う 2 つの方法を示します (1 つは機能し、もう 1 つは機能しません)。
工場 1:
工場 2:
ファクトリ 1 の戻り値の型は関数であり、ファクトリ 2 の戻り値の型はプロパティ (関数型) を持つオブジェクトであることに注意してください。
ここで、コントローラーでこれらのファクトリの両方をどのように使用するかを見てください。
ここで問題が露呈します。実行中に の警告ボックスが表示されますが、 NewFactory2 が未定義NewFactory1("1");
であるため、 の実行中に失敗しますNewFactory2.showMessage("2");
(TypeError: 未定義のメソッド 'showMessage' を呼び出せません)。
問題を見つけるのを手伝ってもらえますか? NewFactory2 のようなファクトリを使用できるようにしたいのは、ファクトリで複数のことを実行できるようにしたいからです (つまり、複数の機能を持たせたい)。ちなみにAngularのバージョンは1.2.1です。
javascript - Angular JS で obj を文字列に変換する方法
工場からの返品の残りを見つけようとしています。obj が数値を返しているにもかかわらず、null を取得し続けます。戻り値を真の数に変換する方法はありますか?
ルート プロバイダーを使用したモジュールのセットアップ
日付 (mm/dd/yyyy) 文字列を受け取り、それを JSON カレンダーに対して解析するファクトリ
obj の戻り値を受け取るコントローラー。temp は 1 を返しますが、temp%2 は Null を返します。
angularjs - AngularJS:データがhttpで取得された場合、ファクトリから値を返すにはどうすればよいですか?
私は角度でこの工場を持っています:
これは私のコントローラーです:
おそらくご想像のとおり、コントローラー内のデータ (getTransactions メソッドを呼び出す場所) は、成功しても更新されません。これを機能させるにはどうすればよいですか?