Я не могу понять этот метод контроллеров привязки данных через службу.Читая сообщения на этом сайте, люди, похоже, рекомендуют держаться подальше от $ watch из-за накладных расходов.Поэтому я вижу, что многие люди используют обещания, но, похоже, не могут заставить начальные данные работать.
В приложении «Моя страница Signle» есть 2 таблицы на 2 отдельных контроллерах и третий контроллер, имеющий форму для редактирования данных.У меня есть простая кнопка отправки, которая установит новые данные для повторной синхронизации на всех контроллерах.Вот что я получил:
Первый контроллер
GDI_App.controller('first_Controller', function ($scope, Service) {
Service.get_data();
$scope.Current.incidents = Service.current_data(); //returns $$State;
});
Второй контроллер
GDI_App.controller('second_Controller', function ($scope, Service) {
Service.get_data();
$scope.Current.incidents = Service.current_data(); //returns $$State;
});
Третий контроллер, который устанавливает данные при отправке
GDI_App.controller('third_Controller', function ($scope, Service) {
$scope.submit = Service.set_data(data);
});
Служба
GDI_App.factory('Service', function($q) {
var Current ={}
Current.Data = [
{ "Data1": "123123", "Data2": "15437" },
{ "Data1": "432234", "Data2": "146" },
{ "Data1": "45654", "Data2": "3534" },
{ "Data1": "76587", "Data2": "78978" },
{ "Data1": "2342", "Data2": "5345878" },
{ "Data1": "178", "Data2": "34534" },
{ "Data1": "173838", "Data2": "354534" },
];
return{
get_data: function(){
return $q.when(Fake_Data)
.then(function(data) {
return data;
});
}
set_data: function(data){
Current.Data = data;
}
}
});
Кто-нибудь знает, чего мне не хватает?