2015-06-10 2 views
0

Предположим, что я использую модуль angular-resource с моим ng-app. Я не могу понять, как обрабатывать data легко и масштабируемо. Кто-нибудь дает мне/показывает мне правильный способ ответить на все эти вопросы?Угловой - правильный подход для обработки выборки данных с сервера?

a) Как правило, как получить данные из url в угловом.?

b) в случае, если каждый из контроллеров может потребовать разные URL и данные, если да, то как процесс fetch добавлен к каждому контроллеру.?

c) или нам нужно сделать сервис для предоставления данных в соответствии с параметрами контроллеров - если да, то как передать параметры для обслуживания?

d) Все вышеуказанные имеют GET, PUT и DELETE, «POST», то как обращаться со всеми ними - все это нуждается в отдельных услугах?

Заранее спасибо.

ответ

1

Используйте angular-resource, как вы сказали в рамках услуги/завода. Это уже дает много ваших требований:

myApp.factory("dataService", [ 
    "$resource", 
    function ($resource) { 
     return $resource("http://someBaseUrl/:action/:id", { 
      id: "@id" // default parameters 
     }, 
     { 
      // custom methods 
      update: { method: "PUT" }, 
      doOtherStuff: { method: "GET", action: "DoOtherStuff" } 
     }); 
    } 
]); 

$resource по умолчанию предусматривает следующие REST-совместимых функций:

{ 
    'get': {method:'GET'}, 
    'save': {method:'POST'}, 
    'query': {method:'GET', isArray:true}, 
    'remove': {method:'DELETE'}, 
    'delete': {method:'DELETE'} 
}; 

Любые другие функции, которые вы должны включить себя, как в update и doOtherStuff в пример выше.

Часть :action - это простой способ обеспечить любое пользовательское действие, которое не соответствует требованиям REST.

Использование контроллеров:

myApp.controller("myCtrl", [ 
    "dataService", 
    function (dataService) { 
     // first parameter can be used for any extra query parameters 
     // second parameter always is a callback 
     var myData = dataService.query({}, function() { 
      // success 
     }); 

     var mySingleInstance = dataService.get({ id: 12 }); 

     this.doUpdate = function (entity) { 
      dataService.update(entity); 
      // Or, if the 'entity' is a resource entity: 
      // entity.$update(); 
     } 

     this.customMethod = function() { 
      dataService.doOtherStuff(); 
     } 
    } 
]); 

См https://docs.angularjs.org/api/ngResource/service/ $ ресурса для полной документации

+0

выглядит хорошо. Кстати, как создавать автономные 'директивы', которые я пытался здесь, которые не работают: http://jsfiddle.net/ydkezd15/7/ – 3gwebtrain

+0

Проверьте это обновление jsfiddle http://jsfiddle.net/ydkezd15/8/ – devqon

+0

Но это иждивенцы переменная 'app' правильно? Я считаю, что 'директива' как можно преобразовать как« компонент »? – 3gwebtrain

Смежные вопросы