У меня несколько директив, объединенных в одном представлении, и все они имеют доступ к одному и тому же ресурсу Angular $.Одна из директив содержит форму.
Я бы ожидал, что $ resource вернет синглтон, поэтому любое изменение данных будет автоматически отражаться во всех других директивах, но это не так.
См. codepen с примером.См. Также код ниже:
angular
.module("app", ["ngResource"])
.controller("c1", function($scope, res) {
$scope.response = res.get();
})
.controller("c2", function($scope, res) {
$scope.response = res.get();
})
.service("res", function($resource) {
const url = "https://httpbin.org/delay/1";
return $resource(url, {
get: { method: "GET" },
save: { method: "POST" }
});
});
<div ng-app="app">
<div ng-controller="c1">
c1: {{response.origin}}
</div>
<div ng-controller="c2">
c2: {{response.origin}}<br>
<input width="200" ng-model="response.origin" style="width: 300px;" /><br>
</div>
</div>
Я ожидаю, что любые изменения в поле ввода будут обновлены в обоих представлениях ($ scope.response должен указывать на один и тот же объект), но только одинпод одной изолированной областью видоизменения.
Есть ли способ совместно использовать один и тот же объект $ resource среди представлений?