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