基本上,我正在尝试制作一些数组,该数组应具有我的应用程序中访问过的页面的历史记录。
$rootScope.$on('$locationChangeStart',
function (event, next, current) {
historyArray.push($location.path());
console.log("history", historyArray);
});
一开始看起来还不错,我的意思是[“ / page1”,“ / page2”],但是随后它开始将“ ChangeStart”效果乘以即[“ / page1”,“ / page2”,“ / page3”, “ / page3”,“ / page4”,“ / page4”,“ / page4”]等。
任何想法如何预防呢?
编辑。这只是一个例子,我需要$ locationChangeStart用于某些ngDialog模态和其他复杂的东西,但是我面临着类似的缝合(例如同时打开5个模态)
最佳答案
您只需添加一个条件来检查位置是否实际更改,然后添加一个indexOf即可确保该页面在数组中不存在。
$rootScope.$on('$locationChangeStart',
function (event, next, current) {
if(next !== current && historyArray.indexOf(current) === -1) {
historyArray.push($location.path());
}
}
);
关于javascript - $ locatioChangeStart多次触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25262499/