Angular——自定义服务

基本介绍

之前我们介绍了angular内置的几种服务,这里我们介绍如何自己定义自己的服务,主要是通过三个方法:factory、service、value

基本使用

factory:可以返回对象,也可以返回一个函数

<!DOCTYPE html>
<html lang="en" ng-app="App">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body ng-controller="DemoController">
<h1>{{now}}</h1>
<script src="../libs/angular.min.js"></script>
<script>
    var App = angular.module('App', []);
    App.factory('showTime', ['$filter', function ($filter) {
        return function () {
            var now = new Date();
            return $filter('date')(now, 'yy-MM-dd');
        }
    }]);
    App.controller('DemoController', ['$scope', 'showTime', function ($scope, showTime) {
        $scope.now = showTime();
    }]);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en" ng-app="App">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body ng-controller="DemoController">
<h1>{{now}}</h1>
<script src="../libs/angular.min.js"></script>
<script>
    var App = angular.module('App', []);
    App.factory('showTime', ['$filter', function ($filter) {
        var now = new Date();
        return {
            now: $filter('date')(now, 'yy-MM-dd')
    }
    }]);
    App.controller('DemoController', ['$scope', 'showTime', function ($scope, showTime) {
        $scope.now = showTime.now;
    }]);
</script>
</body>
</html>

service:和上面的factory有些区别,service里面可以用this追加属性和方法

<!DOCTYPE html>
<html lang="en" ng-app="App">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body ng-controller="DemoController">
<h1>{{now}}</h1>
<script src="../libs/angular.min.js"></script>
<script>
    var App = angular.module('App', []);
    App.service('showTime', ['$filter', function ($filter) {
        var now = new Date();
        this.now = $filter('date')(now, 'yy-MM-dd');
    }]);
    App.controller('DemoController', ['$scope', 'showTime', function ($scope, showTime) {
        $scope.now = showTime.now;
    }]);
</script>
</body>
</html>

value:类似于常量,和最开始初始化应用模块的ng-init十分相似,全局都可以访问

<!DOCTYPE html>
<html lang="en" ng-app="App">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body ng-controller="DemoController">
<h1>{{text}}</h1>
<script src="../libs/angular.min.js"></script>
<script>
    var App = angular.module('App', []);
    App.value('text', 'Hello World!');//定义一个常量,相当于ng-init
    App.controller('DemoController', ['$scope', 'text', function ($scope, text) {
        $scope.text = text;
    }]);
</script>
</body>
</html>

 

转载于:https://www.cnblogs.com/wuqiuxue/p/8432052.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值