码迷,mamicode.com
首页 > 其他好文 > 详细

Angular——自定义服务

时间:2017-10-30 16:01:47      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:1.0   fun   var   自定义   form   就是   orm   show   value   

提供三种自定义服务的方法:factory、service、value

factory:

<script>
        var App = angular.module(‘App‘, []);
        App.controller(‘demo‘, [‘$scope‘, ‘format‘, function ($scope, format) {
            var arr = {
                name: ‘wqx‘,
                age: 12
            };
            console.log(format(arr));
        }]);
        App.factory(‘format‘, [‘$filter‘, function ($filter) {//自定义服务依赖于$filter
            //自定义服务具体的功能
            return function format(arg) {
                var s = ‘‘;
                for (var key in arg) {
                    s += key + ‘=‘ + arg[key] + ‘&‘;
                }
                s = s.slice(0, -1);
                return s;
            }
        }]);
</script>

factory还有另外一种写法:

<script src="angular.min.js"></script>
<script>
        var App = angular.module(‘App‘, []);
        App.controller(‘demo‘, [‘$scope‘, ‘$http‘, ‘format‘, function ($scope, $http, format) {
            var data = {
                name: ‘itcast‘,
                age: 10
            };
            // 测试自定义的服务
            console.log(format.format(data));
            console.log(format.sayHello());
        }]);
        App.factory(‘format‘, [‘$filter‘, function ($filter) {
            // 自定义服务,但依赖于$filter
            // 定义服务具体功能
            function format(arg) {
                var s = ‘‘;
                for (var key in arg) {
                    s += key + ‘=‘ + arg[key] + ‘&‘;
                }
                s = s.slice(0, -1);
                return s;
            }
            // 具体功能
            function sayHello() {
                alert(‘你好‘)
            }
            // 返回出去以被调用
            return {
                format: format,
                sayHello: sayHello
            }
        }]);
</script>

service:

<body ng-app="App" ng-controller="demo">
        <h1>{{now}}</h1>
    <script src="angular.min.js"></script>
    <script>
        var App = angular.module(‘App‘, []);
        App.controller(‘demo‘, [‘$scope‘, ‘showTime‘, function ($scope, showTime) {
            $scope.now = showTime.now();
            showTime.sayHello();
        }]);
        App.service(‘showTime‘, [‘$filter‘, function ($filter) {
            // return {
            //     showTime: function () {
            //     }
            // }
            var now = new Date;
            var date = $filter(‘date‘);
            // 向对象上添加具体方法
            this.now = function () {
                return date(now, ‘yyyy/MM/dd hh:mm:ss‘);
            }
            // 添加具体方法
            this.sayHello = function () {
                alert(‘你好‘);
            }
        }]);
    </script>
</body>

value:

<body ng-app="App" ng-controller="demo">
    <p>{{author}}</p>
    <p>{{version}}</p>
    <script src="angular.min.js"></script>
    <script>
        var App = angular.module(‘App‘, []);
        // 自定义常量服务
        App.value(‘author‘, ‘wqx‘);
        App.value(‘version‘, ‘1.0‘);
        // 本质上一个服务
        // 从表现形式上是一个常量
        // 常量就是不变的值与变对量相对应
        // 声明依赖调用服务
        App.controller(‘demo‘, [‘$scope‘, ‘author‘, ‘version‘, function ($scope, author, version) {
            $scope.author = author;
            $scope.version = version;
        }]);
    </script>
</body>

注释:js会阻塞dom的解析,所以脚本代码最好写在后面,避免写在head标签里。

Angular——自定义服务

标签:1.0   fun   var   自定义   form   就是   orm   show   value   

原文地址:http://www.cnblogs.com/wuqiuxue/p/7754565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!