如何在正确的方式上编写因子AngularJS

时间:2015-09-06 16:28:08

标签: javascript angularjs

我找到了angularjs的风格指南:

https://github.com/johnpapa/angular-styleguide#factories

我现在想以这种方式编写代码:

这是我的工厂:

1/2 mod 10

如何将其重写为上面的文档?

.factory('Noty',function($http){
           return{
               update:function(NotificationData){
                   return $http ({
                        method: "PUT",
                        url   : "/api/notification/" + NotificationData.task,
                        data  : NotificationData
                   });
               }
           };
        });

2 个答案:

答案 0 :(得分:1)

这非常简单,因为您已经在使用revealing module pattern的工厂:

.factory('Noty', function ($http) {
    var service = {
        update : update
    };

    return service;

    function update(NotificationData) {
        return $http({
            method : "PUT",
            url : "/api/notification/" + NotificationData.task,
            data : NotificationData
        });
    }
});

答案 1 :(得分:1)

你会这样写:

(function () {
    'use strict';

    var factoryNotyModule = angular.module('yourApp.factory.Noty', []);


    factoryNotyModule.factory('Noty', Noty);

    Noty.$inject = ['$http'];
    function Noty($http) {

        function updateData (NotificationData) {
            return $http({
                method: 'PUT',
                url: '/api/notification/' + NotificationData.task,
                data: NotificationData
            });
        }

        return {
            updateData: updateData
        };
    }
})();

因此,您可以在将其注入某处后使用它:

Noty.updateData(data);