angular.js - angular中怎么根据时间来判断重新调接口还是调localstorage的内容
phpcn_u1582
phpcn_u1582 2017-05-15 17:10:16
0
1
559

我希望能做到通过时间去判断数据是重新通过接口去取还是直接拿localstorage里面的数据,但是接口返回的是一个promise对象,用if else判断是会报promise.then is not a function。

phpcn_u1582
phpcn_u1582

répondre à tous(1)
洪涛

Prenez un instant après le chargement de la page, puis prenez le temps lorsque vous cliquez sur Actualiser. Regardez le décalage horaire pour déterminer s'il faut utiliser local ou interface. La logique des deux est différente, ils doivent donc être appelés de différentes manières. Enfin, attribuez la valeur à la variable qui stocke les données sur la page, afin que l'erreur que vous avez mentionnée ne se produise pas.
Supplément :
Par exemple, les données de votre page sont stockées à l'aide de $scope.data.
Accédez au moment du chargement de la page et stockez-le dans la variable de démarrage.
Lorsque vous cliquez sur Actualiser, obtenez l'heure de fin et enregistrez-la comme fin. Vous pouvez également obtenir directement le décalage horaire. Si le décalage horaire est supérieur ou égal à une minute, récupérez les données depuis l'interface. Sinon, récupérez les données de localStorage.
L'interface récupère les données et renvoie une promesse, tandis que localStorage renvoie une chaîne.

if(end-start>= 1){ //从接口取数据,加入接口名字为DataService
    DataService().then(function(response){
        console.log(response); //这里默认接口回来的数据和你页面数据是一样的,有可能页面数据是接口数据的一部分,需要用点进行调用,例如 response.data
        $scope.data = response;
    })
}else{
    //从localStorage取数据,这里假定你存入的数据名为data
    //取回来的是字符串,需要转成json。注意,存入的时候也要是字符串,需要用JSON.stringify()转换
    $scope.data = JSON.parse(localStorage.getItem("data"));
}

Le code affiche uniquement la logique et ne peut pas être exécuté directement.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal