0
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