2012-08-22 6 views
10

कहां रखना है, कृपया मुझे यह जानने में सहायता करें कि AngularJS में संसाधन (सेवा) विशिष्ट व्यावसायिक तर्क कहां रखा जाए। मुझे लगता है कि मेरे संसाधन पर कुछ मॉडल-जैसे अमूर्तता बनाना बहुत अच्छा होना चाहिए, लेकिन मुझे यकीन नहीं है कि कैसे।संसाधन विशिष्ट तर्क

API कॉल:

> GET /customers/1 
< {"first_name": "John", "last_name": "Doe", "created_at": '1342915200'} 

संसाधन (CoffeScript में):

services = angular.module('billing.services', ['ngResource']) 
services.factory('CustomerService', ['$resource', ($resource) -> 
    $resource('http://virtualmaster.apiary.io/customers/:id', {}, { 
    all: {method: 'GET', params: {}}, 
    find: {method: 'GET', params: {}, isArray: true} 
    }) 
]) 

मैं की तरह कुछ करने के लिए करना चाहते हैं:

c = CustomerService.get(1) 
c.full_name() 
=> "John Doe" 

c.months_since_creation() 
=> '1 month' 

धन्यवाद किसी भी विचार के लिए एक बहुत। एडम

उत्तर

18

एक डोमेन वस्तु का एक उदाहरण पर लागू किया जा करने के लिए इस डोमेन वस्तु के प्रोटोटाइप होगा की जरूरत है कि तर्क के लिए सबसे अच्छी जगह है।

आप उन पंक्तियों के साथ कुछ लिख सकते हैं:

services.factory('CustomerService', ['$resource', function($resource) { 

    var CustomerService = $resource('http://virtualmaster.apiary.io/customers/:id', {}, { 
     all: { 
      method: 'GET', 
      params: {} 
     } 
     //more custom resources methods go here.... 
    }); 

    CustomerService.prototype.fullName = function(){ 
     return this.first_name + ' ' + this.last_name; 
    }; 

    //more prototype methods go here.... 

    return CustomerService;  

}]); 
+2

angularjs.org मुखपृष्ठ, "बैकएंड वायरस" अनुभाग, mongolab.js टैब/कोड भी देखें, जहां संसाधन वर्ग का विस्तार करने के लिए प्रोटोटाइप का भी उपयोग किया जाता है। –

0

आप संबंधित विषय पर this SO question करने के लिए अपने जवाब पर एक नज़र लेने के लिए चाहते हो सकता है।

ऐसे समाधान के साथ, डोमेन विशिष्ट तर्क कस्टम डोमेन इकाई वर्ग (विशेष रूप से, इसका प्रोटोटाइप) में जाता है।

संबंधित मुद्दे