Мне было интересно, какой предпочтительный способ заставить другую часть приложения взаимодействовать друг с другом.Каким образом можно использовать разные части приложения angularjs для общения друг с другом?
Например, допустим, у нас есть директива A
, отображающая продукт в корзине покупок пользователя. Эта директива имеет доступ к службе непрерывности, которая позволяет выполнять операции CRUD в элементе.
Давайте также укажем, что у нас есть директива B
, которая отображает общее сообщение.
Теперь пользователь решает удалить продукт из своей корзины. Допустимо, чтобы сделать его опубликовать событие за этот путь ?:
$scope.$emit("item-deleted");
и затем B
прослушивание этого типа события:
$scope.$on("data-received", function(event, next, current) {
// show up and tell "item deleted succesfully"
});
Это хороший способ для достижения результата? Это определенно в других рамках и в разработке пользовательского интерфейса в целом. Я просто удивлялся, если это жизнеспособный способ в угловой.
Благодаря
События и услуги - это обе возможности, поэтому вышеупомянутое решение в порядке. –
В случае события вы должны сохранить обе директивы в той же иерархии областей. – khanmizan