Web888.vn
  • Shop
  • Blog
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • AngularJS
  • テクノロジーニュース
angleJSのファクトリとサービス

angleJSのファクトリとサービス

  • 24-07-2022
  • Toanngo92
  • 0 Comments

プロバイダーを使用してサービスを作成することに加えて、AngularJSはビジネスアーキテクチャ(サービス)を通じてアイデアを実装します。 AngularJsは、サービスを作成するための2つの関数を提供します。

  • 工場()
  • サービス()

Mục lục

  • 工場
  • サービス
    • サービスと工場の違い

工場

ファクトリは、検証やビジネスルールなどのタスクを実行する再利用可能な値を返すメソッドであり、ファクトリはコントローラまたはサービスが必要とするときに目的の値を生成します。これらの生成された値は、必要なときにいつでもコントローラーまたはサービスに再利用できます

factory()メソッドは関数であり、ファクトリオブジェクトを作成してそのオブジェクトを返すため、上記のvalue()メソッドから生成された値とは異なり、ファクトリはこれを行うために関数を使用します。より複雑です。値の計算などの操作…値を返し、次に値を返し、value()メソッドと同様に挿入できるロジックを構築します

工場の例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Example Factory</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.js"></script> <style> input, select { margin-bottom: 10px; } </style> </head> <body ng-app="myApp"> <div ng-controller="myCtrl"> <h1>Calculate total product</h1> Product price: <br /> <input type="number" ng-model="price" /> <br /> Shipping type: <br /> <select ng-model="shippingtype"> <option value="flat">Flat shipping - 10$</option> <option value="custom">Express - custom price</option> </select> <br /> <input type="number" ng-model="shipping" ng-show="shippingtype == 'custom'" /> <br /> <p>Total: {{calculate()}}</p> </div> </body> <script> var myApp = angular.module('myApp', []); myApp.factory("calculateOrderService", function () { //define factory varialble var factory = {}; factory.flatShipping = function (price) { // shipping price value is 10 return price + 10; } factory.customShipping = function (price, shipping) { // shipping price value is 20 return price + shipping; } return factory; }); myApp.controller("myCtrl", function ($scope, calculateOrderService) { $scope.price = 0; $scope.shipping = 0; $scope.total = 0; $scope.shippingtype = "flat"; $scope.calculate = function () { if ($scope.shippingtype == "flat") { $scope.total = calculateOrderService.flatShipping($scope.price); } else { $scope.total = calculateOrderService.customShipping($scope.price, $scope.shipping); } return $scope.total; }; }); </script> </html>

サービス

angleJSでは、サービスは、コントローラーに注入できる一連の関数を格納するシングルトンオブジェクトを指します。これらの関数には、サービスがジョブを処理するのに役立つロジックがあります。たとえば、$httpサービスはコントローラーにHTTPを実行するために使用されます。オペレーション

モジュールでサービスを作成するために、AngularJSはservice()メソッドを提供します。このメソッドを使用して、サービスを定義し、目的のメソッドを割り当てます。サービスには、オブジェクトを作成するためにnew keyという単語を使用するコンストラクター関数(初期化)があります。メソッドとプロパティをその中に入れます。ただし、ファクトリとは異なり、定義後のサービス内では値が返されません。すべてがこれ(オブジェクトコンテキスト自体)を介してサービスに注入されます。サービスは、他のサービス、フィルター、コントローラー、ディレクティブに注入できます。

サービスを介してデータを初期化する例:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Example Service</title> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.js"></script> </head> <body ng-app="myApp"> <div ng-controller="myController"> <select ng-model="selectedlistOption" ng-change="alertselected()" ng-options="item as item.name for item in listOption track by item.id"> </select> </div> </body> <script> var app = angular.module('myApp', []); app.service('myService', function () { this.optionDefault = {id: 0, name: "Choose nothing"}; this.addListOption = function (listOption) { listOption.unshift(this.optionDefault); }; }); app.controller('myController', function ($scope, myService) { // $scope.selected = ""; $scope.listOption = [ {id: 1, name: "Option 1"}, {id: 2, name: "Option 2"}, {id: 3, name: "Option 3"}, {id: 4, name: "Option 4"}, ]; myService.addListOption($scope.listOption); $scope.selectedlistOption= $scope.listOption[0]; $scope.alertselected = function(){ console.log($scope.selectedlistOption); } }); </script> </html>

上記の例では、インジェクションメカニズムを介してサービスを使用して作業を行い、新しく初期化された選択リストにデフォルトの選択オプションを配置し、それをデフォルトの選択として選択します。

サービスと工場の違い

違い工場サービス
関数型(関数型)関数として、オブジェクトまたは値を返しますコンストラクター関数であるか、新しい.keywordを介して初期化されます
使用(使用)未構成のサービスに使用され、複雑な論理構造でよく使用されます単純な論理構造での使用に適しています
プロパティこのキーワードを使用しない定義このキーワードを使用する
フレンドリーな注入メカニズムサポートなしサポート
プリミティブ(プリミティブ)もついいえ
優先選択クラスを定義する際の優先順位クイックユーティリティを定義するとき、またはES6標準機能を定義するときに優先する

Bài viết liên quan:

MicrosoftSQLServerの概要
PHPで文字列を処理する関数
PHPの定数と定数の宣言方法
Xampp
Mythemeshopは、無料のコミュニティ36プレミアムバージョンのワードプレステーマを提供しています!
仕事を早く発展させるために、これらのことを覚えておいてください!
ユーザーマニュアルと基本的な管理機能WordPressCMS
幸せの前に苦しみ、それから金持ちになりますか?正しく考える方法は?
WordPressで「MissingTemporaryDirectory」エラーを修正
市場の残酷な現実を受け入れないでください、成功について考えないでください!
人々が人生でますます経験不足になっている理由
タグマネージャーを使用して、Googleアドワーズ広告とGoogleアナリティクスの連絡フォーム7イベント変換を設定します

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

MacOSにPHPを手動でインストールする

SQLServer2019のSQLの高度な機能

AzureSQLの紹介

SQLServerのJSONデータ

LinuxおよびUnixOSにPHPを手動でインストールする

Giới thiệu

web888.vn là chuyên trang chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với web888

© web888.vn - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.

Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our privacy policy.

Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×