관련 튜토리얼 권장사항: "angular Tutorial"
Provider란 무엇입니까?
angularjs공급자에 대한 문서 정의:
provider는 $get() 메소드 객체. 인젝터는 <code>$get
메서드를 호출하여 새 서비스 인스턴스를 생성합니다. 공급자에는 공급자를 구성하는 데 사용할 수 있는 몇 가지 다른 방법도 있습니다. $get()
方法的对象。injector调用$get
方法创建一个新的service的实例。provider还有一些其他的方法,可以用来配置provider。
AngularJS使用$provide
注册新的providers。providers基本上都会创建一个新实例, 但每个provider只创建一次。$provide
$provide
를 사용하여 새로운 공급자를 등록합니다. 공급자는 기본적으로 새 인스턴스를 생성하지만 각 공급자는 한 번만 생성됩니다. $provide
는 사용자 정의 공급자를 생성하는 6가지 방법을 제공하며 간단한 코드 예제를 통해 각각 설명하겠습니다. 6가지 방법은 다음과 같습니다.Constant
상수는 어디에나 주입될 수 있습니다. 상수는 데코레이터가 가로챌 수 없습니다. 즉, 상수 값은 절대 변경할 수 없습니다.var app = angular.module('app', []); app.config(function ($provide) { $provide.constant('movieTitle', 'The Matrix'); }); app.controller('ctrl', function (movieTitle) { expect(movieTitle).toEqual('The Matrix'); });
app.constant('movieTitle', 'The Matrix');
value는 삽입할 수 있는 간단한 값이며 문자열일 수 있습니다. 숫자든, 함수든.
var app = angular.module('app', []); app.config(function ($provide) { $provide.value('movieTitle', 'The Matrix') }); app.controller('ctrl', function (movieTitle) { expect(movieTitle).toEqual('The Matrix'); })
app.value('movieTitle', 'The Matrix');
var app = angular.module('app' ,\[\]); app.config(function ($provide) { $provide.service('movie', function () { this.title = 'The Matrix'; }); }); app.controller('ctrl', function (movie) { expect(movie.title).toEqual('The Matrix'); });
app.service('movie', function () { this.title = 'The Matrix'; });
service는 new를 호출하여 새 객체를 생성하는 생성자입니다. 팩토리를 사용하면 함수가 원하는 것을 반환하도록 할 수 있습니다.
var app = angular.module('app', []); app.config(function ($provide) { $provide.factory('movie', function () { return { title: 'The Matrix'; } }); }); app.controller('ctrl', function (movie) { expect(movie.title).toEqual('The Matrix'); });
app.factory('movie', function () { return { title: 'The Matrix'; } });
var app = angular.module('app', []); app.value('movieTitle', 'The Matrix'); app.config(function ($provide) { $provide.decorator('movieTitle', function ($delegate) { return $delegate + ' - starring Keanu Reeves'; }); }); app.controller('myController', function (movieTitle) { expect(movieTitle).toEqual('The Matrix - starring Keanu Reeves'); });
var app = angular.module('app', []); app.provider('movie', function () { var version; return { setVersion: function (value) { version = value; }, $get: function () { return { title: 'The Matrix' + ' ' + version } } } }); app.config(function (movieProvider) { movieProvider.setVersion('Reloaded'); }); app.controller('ctrl', function (movie) { expect(movie.title).toEqual('The Matrix Reloaded'); });
영어 원본 주소: https://xebia.com/blog/differences-between-providers-in-angularjs/
관련 추천: 프로그래밍 교육
🎜위 내용은 AngularJS의 공급자 간의 차이점에 대해 이야기해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!