2015-09-06 18 views
1

我發現這個風格指南爲angularjs寫:如何在正確的方式廠區AngularJS

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

我瓦納現在給我寫上這樣的代碼:

這是我工作的工廠:

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

我怎樣才能重寫它看起來像上面的文件?

/* recommended */ 
function dataService() { 
    var someValue = ''; 
    var service = { 
     save: save, 
     someValue: someValue, 
     validate: validate 
    }; 
    return service; 

    //////////// 

    function save() { 
     /* */ 
    }; 

    function validate() { 
     /* */ 
    }; 
} 

回答

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); 
+0

謝謝,我現在怎麼能在後端採集數據,我用laravel ... –

+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 
     }); 
    } 
});