Angular 1.6 + ui-router
Сколько я не вникал в суть сервисов, провайдеров и фабрик так до конца их и не понял...
Пока нужен синглтон - все ок.
Как правильно в ui-router в resolve по id получить некий объект с сервера?
Для него есть ES6 класс с кучей методов. Этому объекту еще придется взаимодействовать с другими сервисами.
class EntryModel {
constructor(data, $http, SomeService1, ...) { /* присваивание данных data и сохранение ссылок на сервисы */ }
myFunc() { ... }
}
angular.module('module').service('Entry', function($http, SomeService1, ...) {
return {
getById: function(id) {
return new Promise((resolve, reject) => {
$http.get(`/entries/${id}`).then(result => {
resolve(new EntryModel(result.data, $http, SomeService1, ...));
}, error => {
reject(error);
});
});
}
}
})
.config(function ($stateProvider) {
$stateProvider
.state('ide', {
url : '/{app:[0-9a-fA-F]{8}}',
component: 'ide',
resolve : {
entry: function (Entry, $stateParams) {
let entry = Entry.getById($stateParams.app);
return entry;
}
}
});
});
Я правильно делаю?
В angular 4 такое потом получится портировать?