В приложении на Ангуляре использую ui-router. Грубо говоря основной экран разделен на две части: sideBar и main. Пример:
.state('node', {
url: "/node",
views: {
"main" : {
templateUrl: '/templates/node/node.html',
controller: 'NodeController',
}
},
"sideBar " : {
templateUrl : '/templates/sideBar.html',
controller: 'sideBarController',
}
}
})
Во view:main отображается таблица, каждая строчка которой является записью в таблице БД "node" (NodeController.nodes). Во view:sideBar кнопка с вызовом модального окна, с помощью которого можно добавить новую строчку в таблицу на сервере. Сервер в ответ отдает только что созданную запись, если все прошло успешно.
Вопрос: как правильнее сделать, чтобы после добавления в БД через модальное окно, добавить новую запись в NodeController.nodes.
У меня есть два варианта:
1. Создать сервис NodeService с переменной nodes. В эту переменную записывать все записи, добавлять из модального окна и, с помощью $scope.$watch в NodeController отслеживать изменения.
2. В sideBarController использовать $rootScope.$emit и соответственно $rootScope.$on в NodeController