Я использую ng-repeat для заполнения элементов списка и последующего их анимации с помощью vTicker. Мой app.js вызывает вызов php, который возвращает объект, который затем считывается ng-repeat. Проблема в том, что даже после того, как объект возвращает новое сообщение, в html все еще отображается старое сообщение. Однако, если страница обновлена, старые значения очищаются, и отображается только последнее сообщение. Как я могу достичь этого, не обновляя страницу.Angularjs: Удалить значения старого списка из DOM
App.js:
$scope.refreshbc = function()
{
$scope.bclist = "";
$http.get(bcurl).then(function(bcresponse)
{
if(bcresponse.data.indexOf("Entry does not exist in
database") > -1)
{
$scope.bclist = "";
console.log($scope.bclist);
} else
{
$scope.bclist = bcresponse.data;
if($scope.bclist[0].msg == "No alerts.")
{
$scope.mibtn = "btn-success";
$scope.mitxtcol = "black";
} else
{
$scope.mibtn = "btn-danger";
$scope.mitxtcol = "white";
}
}
});
$ scope.refreshbc(); $ interval (function() {$ scope.refreshbc();}, 30000);
HTML:
<div id="example" style="margin-top:39px;color:#cccc00;font-
size:15px;">
<ul id="tickerul" style="list-style: none;">
<li ng-init="stvticker()" ng-if="bclist[0].msg !== null" ng-
repeat="bc in bclist track by $index" >{{bc.msg}}</li>
<li style=""></li>
</ul>
</div>
Почему вы устанавливаете '$ scope.bclist =" ";' (строку), а затем рассматриваете его как массив объектов со свойствами (или, по крайней мере, для свойства 'msg')? Если вы пытаетесь очистить массив, вы должны использовать '$ scope.bclist = [];'. – Lex
Я сделал изменение выше, но в списке по-прежнему отображается старое значение. Страница все еще нуждается в обновлении, чтобы очистить старую ценность. –
Странно. Он должен обновляться при изменении массива, поддерживающего 'ng-repeat'. – Lex