factory 方式
var app = angular.module('App', []);
app.controller('demoCtrl', ['$scope', 'firstUp', 'toPath', function($scope, firstUp, toPath){
$scope.obj = {
name: 'hannah',
sex: 'woman',
age: 18
}
console.log(firstUp($scope.obj.name));
console.log(toPath.format($scope.obj));
}])
app.factory('firstUp', ['$filter', function($filter){
return function(str) {
return str[0].toUpperCase() + str.slice(1);
}
}])
app.factory('toPath', ['$filter', function($filter){
return {
format:format
}
function format(arg){
var str = ""
for(var key in arg){
str += key + '=' + arg[key] + '&';
}
return str.slice(0,-1);
}
}])
service 方式
var app = angular.module('App', []);
app.controller('demoCtrl', ['$scope', 'str', function($scope, str){
$scope.name = 'hannah';
var toA = str.firstUp($scope.name)
console.log(toA);
}])
App.service('str',['$filter', function($filter){
this.firstUp = function(inp){
return inp[0].toUpperCase() + inp.slice(1);
}
}])
value / constant 方式
- 使用
constant
和 value
方法创建服务,常用于返回一个常量
<html ng-app="App">
<div ng-controller="demoCtrl">
<p>作者:{{author}}</p>
<p>版本:{{version}}</p>
</div>
</html>
var app = angular.module("App",[]);
app.controller('demoCtrl', ['$scope', 'author', 'version', function($scope, author, version){
$scope.author = author;
$scope.version = version;
}])
app.value('author','hannah');
app.value('version','1.0.0');
provider 方式