Angular 1を使用するシステムで通知消滅機能を開発したいと考えています。角型で5秒後に配列要素を取り除く具体的な方法はありますか?
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $timeout) {
$scope.notifications = [];
$scope.makeNotification = function(notification) {
var index = $scope.notifications.length;
$scope.notifications.push({notification:notification + " " + index});
$timeout(function() {
$scope.notifications.splice(index, 1);
}, 5000);
}
});
これは私が期待どおりに動作:
<div ng-app="myApp" ng-controller="myCtrl">
<button ng-click='makeNotification("New Notification")'>Add</button>
<ul>
<li ng-repeat='n in notifications'>{{n.notification}}</li>
</ul>
</div>
JSコード:ここに私のHTMLコードです。そのコードのバグと思われます。一部の通知は削除されずに残ります。
これを行うには他に良い方法がありますか?以下は私が作成したjsfiddleです。 https://jsfiddle.net/niroshanJ/Lseaphrt/7/
タイムアウト機能で削除要素のための別々のインデックスを使用しようか?配列から要素を削除(スプライス)すると、項目が少なくなるので、 'timeout'でやるのが難しいという点を除いて、' index'を減らす必要があります。それは '$ scope.notifications.splice(0、1);'ではないでしょうか? –
通知をすべて削除するか、最後の通知のみを削除しますか? –