Я пишу приложение с использованием компонентов Angular 1.5. Данные в компонент передаются извне через параметр resolve, таким образом, я могу отображать данные из разных источников в одном и том же компоненте. Но я не понимаю, как я должен поступить, чтобы изменить эти данные внутри компонента.
Предположим, у меня есть сервис User, который работает с пользователями через API. При загрузке стейта (и, соответственно компонента), я обращаюсь к методу Users.get(), получаю данные пользователей и передаю их внутрь компонента. Для роутинга я использую UI Router. Например:
//...
$stateProvider
.state('users', {
url: '/users',
component: 'formPage',
resolve: {
values: function(Users) {
return Users.get();
});
//...
// Внутри компонента formPage
//...
component('formPage', {
bindings: {
values: '<'
},
//...
Я получаю эти данные, всё хорошо. Но в шаблоне компонента находится форма, в которой можно изменить данные. При сохранении этих данных я хочу вызвать метод Users.update(), с помощью которого они передадутся на сервер. Но компонент ничего не знает о сервисе Users! И не должен знать, чтобы быть независимым от набора данных.
Каким образом мне указать, что в этом стейте для изменения данных нужно использовать конкретный метод Users.update()? И как мне вызвать этот метод, изменяющий данные, внутри компонента?