Когда я вызываю $ scope.remove в html, он вызывает функцию rerender, затем автоматически обновляет данные в html.
Когда я вызываю $ scope.post, он вызывает функцию rerender и записывает новые данные. Однако он не автоматически перезагружает html. Мне нужно обновить страницу, чтобы просмотреть обновленные данные.
Я изучил использование $ apply, но я озадачен тем, как это обновление для удаления, но не сообщение.
контроллер:
var updateData = function (resp){
$scope.data = resp.data;
console.log($scope.data);
}
$scope.getEntries = function (){
return $http({
method: 'GET',
url: '/allEntries'
}).then(updateData)
};
$scope.post = function (){
return $http({
method: 'POST',
url: '/newEntry',
data: $scope.entry
}).then(function (resp){
$scope.getEntries();
})
};
$scope.remove = function (opp){
return $http({
method: 'POST',
url: '/deleteEntry',
data: opp
}).then(function (){
$scope.getEntries();
})
}
Я думаю, что это может быть связано с функциями, вызываемыми в разных html файлах, но поскольку они оба имеют один и тот же контроллер, я бы подумал, что это не так.
<html>
<body ng-app = "app">
<div ng-controller = "controller">
<form ng-submit = "post()">
<input type="submit" value="Submit">
</form>
</div>
</body>
</html>'
<html>
<body ng-app = "app">
<div ng-controller = "controller">
<ul>
<li ng-repeat = "job in data" ><input type = "button" ng-click = "remove(opp)" value="Delete"></li>
</ul>
</div>
</body>
</html>'
В самом деле, у вас есть два разных раздела, каждый со своим собственным контроллером и, следовательно, каждый со своей областью:
Вы публикуете из раздела, который ничего не отображает, поэтому он обновляет список в области этого раздела, который все еще ничего не отображает.
Короче говоря, обе секции не имеют одного и того же контроллера. У них разные экземпляры контроллеров, и эти экземпляры имеют одинаковый тип. Но они все еще полностью независимы друг от друга.
И на самом деле, перечитывая свой вопрос, это на самом деле хуже этого. Кажется, у вас есть две вкладки браузера или фреймы. Вы отправляете сообщения с одной из вкладок и надеетесь, что другая будет обновляться автоматически. Этого не произойдет: две вкладки являются полностью независимыми приложениями.