Angularjs ng src使用随机发生器显示多个图像-Ionic 1/Cordova

Angularjs ng src使用随机发生器显示多个图像-Ionic 1/Cordova,angularjs,cordova,ionic-v1,Angularjs,Cordova,Ionic V1,我用的是爱奥尼亚1/科尔多瓦。我试图从数组中选择一个随机图像显示在页面上(这样每次用户访问时图像都会不同)。我让它每次从数组中随机选择一个URL,但它会在停止之前在页面上翻转3到4个图像。我知道这是ng src的预期摘要行为,但如何在第一个周期后防止或停止它 HTML: 据我所知,您正试图让每一个周期只显示一次所有内容。我不是为angular设置的,但这里有一个模拟函数可以帮助您。对于Angular,您可能必须包含$window才能访问localStorage,否则这将适用于vanilla js

我用的是爱奥尼亚1/科尔多瓦。我试图从数组中选择一个随机图像显示在页面上(这样每次用户访问时图像都会不同)。我让它每次从数组中随机选择一个URL,但它会在停止之前在页面上翻转3到4个图像。我知道这是ng src的预期摘要行为,但如何在第一个周期后防止或停止它

HTML:


据我所知,您正试图让每一个周期只显示一次所有内容。我不是为angular设置的,但这里有一个模拟函数可以帮助您。对于Angular,您可能必须包含$window才能访问localStorage,否则这将适用于vanilla js

    const answers = [
    "images/1500.gif",
    "images/1500.gif",
    "images/2000.gif",
    "images/2500.gif",
    "images/3000.gif",
    "images/3500.gif",
    "images/4000.gif",
    "images/4500.gif"
];


let randomImage = function (staticArray = [], storeName = "store") {
    let result = '';
    let _seen = localStorage.getItem(storeName);
    let _seenArr = JSON.parse(_seen);
    let allArr = [];
    staticArray.forEach(function (element, index) {
        allArr.push(index);
    });

    let rIdx = Math.floor(Math.random() * staticArray.length);


    if (_seen === null) {
        localStorage.setItem(storeName, JSON.stringify([rIdx]));
        result = staticArray[rIdx];
    } else {

        let _unseen = allArr.filter((el) => !_seen.includes(el));
        rIdx = Math.floor(Math.random() * _unseen.length);
        result = staticArray[_unseen[rIdx]];
        _seenArr.push(_unseen[rIdx]);
        localStorage.setItem(storeName, JSON.stringify(_seenArr));
        result = staticArray[_unseen[rIdx]];

        if (JSON.parse(localStorage.getItem(storeName)).length >= staticArray.length) {
            localStorage.removeItem(storeName);
        }


    }

    return result;
};


console.log(randomImage(answers));

我创建了一个分离函数,首先拾取图像,然后调用该变量,从而使其工作。它现在每次加载一个随机图像。这是更新的JS,以防它帮助其他人

 var winningGif = null;

 $scope.resultgif = function() {

  var sendGif = winningGif;
  return sendGif;

  };

function getRandomGif()     {

  var answers = [
"images/1500.gif",
"images/1500.gif",
"images/2000.gif",
"images/2500.gif",
"images/3000.gif"

]

 var randomAnswer = Math.floor(Math.random() * answers.length);
 winningGif = answers[randomAnswer];

}     

我让它工作了。。。我创建了一个单独的函数,首先随机选取图像,下面是更新的JS代码,以防其他人遇到类似问题。
    const answers = [
    "images/1500.gif",
    "images/1500.gif",
    "images/2000.gif",
    "images/2500.gif",
    "images/3000.gif",
    "images/3500.gif",
    "images/4000.gif",
    "images/4500.gif"
];


let randomImage = function (staticArray = [], storeName = "store") {
    let result = '';
    let _seen = localStorage.getItem(storeName);
    let _seenArr = JSON.parse(_seen);
    let allArr = [];
    staticArray.forEach(function (element, index) {
        allArr.push(index);
    });

    let rIdx = Math.floor(Math.random() * staticArray.length);


    if (_seen === null) {
        localStorage.setItem(storeName, JSON.stringify([rIdx]));
        result = staticArray[rIdx];
    } else {

        let _unseen = allArr.filter((el) => !_seen.includes(el));
        rIdx = Math.floor(Math.random() * _unseen.length);
        result = staticArray[_unseen[rIdx]];
        _seenArr.push(_unseen[rIdx]);
        localStorage.setItem(storeName, JSON.stringify(_seenArr));
        result = staticArray[_unseen[rIdx]];

        if (JSON.parse(localStorage.getItem(storeName)).length >= staticArray.length) {
            localStorage.removeItem(storeName);
        }


    }

    return result;
};


console.log(randomImage(answers));
 var winningGif = null;

 $scope.resultgif = function() {

  var sendGif = winningGif;
  return sendGif;

  };

function getRandomGif()     {

  var answers = [
"images/1500.gif",
"images/1500.gif",
"images/2000.gif",
"images/2500.gif",
"images/3000.gif"

]

 var randomAnswer = Math.floor(Math.random() * answers.length);
 winningGif = answers[randomAnswer];

}