angularJs 自定义服务 provide 与 factory 的区别
2024-10-19 00:22:31
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="angular.min.js" ></script>
<script type="text/javascript">
var m1 = angular.module('myApp', []); // 自定义服务 -- factory
// m1.factory('myService', function() {
// return {
// name : 'liuyi',
// age : 30,
// showName : function() {
// return this.name + '今年' + this.age + '岁了';
// }
// }; // }); // 自定义服务 provider
m1.provider('myService', function() {
return {
name : '刘二',
age : 40,
$get : function() {
return {
name : this.name,
age : this.age,
showName : function() {
return this.name + '今年' + this.age + '岁了';
} };
} };
}); // 自定义服务 -- 随机函数
// m1.factory('rndFn', function() { // return function( n1, n2 ) {
// return Math.random()*(n2 -n1) + n1;
// }
// }); // 改写配置参数
// m1.config( ['myServiceProvider', function(myServiceProvider) { // myServiceProvider.age = 100; // }] );
m1.config( ['randomFnProvider', function(randomFnProvider) { randomFnProvider.bInt = false; }] );
// 控制器
// m1.controller('firstController', ['$scope', 'rndFn', function($scope, rndFn) { // console.log( rndFn( 0, 5 ) );
// }]); m1.provider('randomFn', function() {
return {
bInt : false,
int : function( args ) {
if( args ) {
this.bInt = true;
} else {
this.bInt = false;
}
},
$get : function() {
var This = this;
return function( n1, n2 ) {
return This.bInt ? Math.floor(Math.random()*(n2 - n1) + n1) : Math.random()*(n2 - n1) + n1
};
} }; }); m1.controller('firstController', ['$scope', 'randomFn', function($scope, randomFn) { console.log( randomFn(0, 5) );
}]); </script>
</head>
<body ng-controller="firstController"> </body>
</html>
最新文章
- CSharpGL(27)讲讲清楚OpenGL坐标变换
- http请求的开销
- ajax(ajax开发)
- MVC实现省级联动
- freemark标签中输出boolean值
- day4 liaoxuefeng---面向对象编程、IO编程
- Java IO、NIO、AIO知识总结
- PHP防止网页快速刷新+代理ip访问
- SQL优化原则(转)
- leetcode 395. Longest Substring with At Least K Repeating Characters(高质量题)
- Tomcat端口被占用解决方案
- MapReduce C++ Library
- 【译】第七篇 Replication:合并复制-订阅
- TP3.2校验微信公众号||小程序 服务器地址
- jdbc框架有很多,包括spring jdbc
- Flutter中集成Font Awesome
- LeetCode OJ:Palindrome Partitioning(回文排列)
- python web开发配置
- HDU计算机学院大学生程序设计竞赛(2015’12)Happy Value
- vue-router2.0组件复用