自从添加了 cordova-sqlite-storage 插件并将控制器重构为如下内容后,我看到选项卡之间的转换出现了奇怪的行为。
angular.module('blah.controllers').controller('EquipmentCtrl', ['$scope', '$state', 'EquipmentService', 'UtilService', function($scope, $state, EquipmentService, UtilService) {
document.addEventListener("deviceready", getRowsFromDb, false);
function getRowsFromDb() {
EquipmentService.getAllEquipment().then(function(rows) {
$scope.equipmentList = rows;
$scope.equipmentRows = UtilService.chunkArray($scope.equipmentList, 3);
});
}
}]);
在初始页面加载时一切正常/看起来很棒,但是当我在选项卡之间转换时,我看不到页面上 sqlite 的数据,直到我第二次点击同一个选项卡。
该页面将加载至显示静态数据(标题、其他文本等),但在第二次点击当前选项卡之前,我不会看到从 sqlite 返回的数据。我想知道页面加载后是否会触发“设备就绪”,但我不知道如何解决这个问题。
我尝试了这个解决方案,但没有看到任何行为差异。
有没有其他人遇到过这种情况,如果有,最好的攻击计划是什么?