توسعه سرویسهای Angular به روش OOP
نویسنده: مسعود پاکدل
تاریخ: ۱۳۹۳/۰۶/۱۴ ۲۳:۳۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
angular.module('myApp').service('BaseService', function() {
var BaseService = function(title) {
this.title = title;
};
BaseService.prototype.getMessage = function() {
var self = this;
return 'Hello ' + self.title;
};
return BaseService;
}); var app= angular.module('myApp', []);
app.controller('myCtrl', function ($scope,BaseService) {
var instance = new BaseService('Masoud');
$scope.title = instance.getMessage();
}); <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="myApp">
<head>
<title></title>
</head>
<body ng-controller="myCtrl">
<div>
{{title}}
</div>
</body>
<script src="Scripts/jquery-2.1.1.min.js"></script>
<script src="Scripts/angular.js"></script>
<script src="App/app.js"></script>
</html> تا اینجای کار روال معمول تعاریف سرویس در انگولار بوده است. اما قصد داریم سرویس جدیدی را ایجاد نمایم تا خروجی سرویس قبلی را اندکی تغییر دهد. به جای اینکه سرویس قبلی را تغییر دهیم یا بدتر از آن سرویس جدیدی بسازیم و کدهای قبلی را در آن کپی کنیم کافیست به صورت زیر عمل نماییم:
app.service('ExtService', function(BaseService) {
var ExtService = function() {
BaseService.apply(this, arguments);
};
ExtService.prototype = new BaseService();
ExtService.prototype.getMessage = function() {
var self = this;
return BaseService.prototype.getMessage.apply(this, arguments) + ' From Ext Service';
};
return ExtService;
}); app.controller('myCtrl', function ($scope,BaseService , ExtService) {
var baseInstance = new BaseService('Masoud');
var extInstance = new ExtService('Dotnettips');
$scope.title = baseInstance.getMessage() + ' and ' + extInstance.getMessage();
});