【发布时间】:2017-04-15 18:26:08
【问题描述】:
我是 AngularJS 的新手,在解决一些小问题时遇到了很多问题。 当我的视图刷新时,这将丢失配置。让我解释得更好。我在视图顶部有一个选项卡,下面有一些标签和 texbox。当我的代码从 sqlite 中保存 pup 一些小配置时,离子忘记了选项卡并且对象上升,被选项卡隐藏。
按照用于调用 sqlite 的代码进行操作。
控制器
.controller('ClienteDetalheCtrl', ['clientesFactory', '$scope', '$state', '$window', '$rootScope', function (clientesFactory, $scope, $state, $window, $rootScope) {
buscaEquipamento();
alteraData();
function buscaEquipamento() {
clientesFactory.selectTodos('equipamento');
$scope.selecionaInstalacao = clienteselec;
}
}
sqlite 调用:
var db = null;
var clienteselec = [];
angular.module('sqlite', ['ionic', 'ngCordova'])
.run(function ($ionicPlatform, $cordovaSQLite) {
$ionicPlatform.ready(function () {
db = $cordovaSQLite.openDB({ name: "rollers.db", location: 1 });
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS clientes (id integer primary key, nome varchar(40), TC int)");
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS instalacao (id integer primary key, idCliente int, dataInst datetime)");
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS manutencao (id integer primary key, idCliente int, idInstalacao int, dataManut datetime)");
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS equipamento (id integer primary key, idCliente int, idInstalacao int, idManutencao int, TC int, posicao varcar(1), Rolo varchar(40), dataEquip datetime)");
});
})
.factory('clientesFactory', function ($ionicPlatform, $cordovaSQLite) {
selectTodos: function (tab) {
var query = "SELECT * FROM " + tab;
clienteselec = [];
$cordovaSQLite.execute(db, query, []).then(function (result) {
if (result.rows.length) {
for (var i = 0; i < result.rows.length; i++) {
clienteselec.push(result.rows.item(i));
}
} else {
console.log("no data found!");
}
}, function (err) {
console.log("error" + err);
});
},
});
显示信息的视图:
<ion-header>
<ion-navbar>
<ion-title>Instalacao</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<label class="item item-input">
<span class="input-label">Cliente:</span>
<input type="text" id="TxtCli" disabled />
</label>
<label class="item item-input">
<span class="input-label">TC</span>
<input type="text" id="TxtTC"/>
</label>
<label class="item item-input">
<span class="input-label">Data:</span>
<input type="text" id="TxtData" disabled />
</label>
<label class="item item-input">
<span class="input-label">Hora:</span>
<input type="text" id="TxtHora" disabled />
</label>
<div ng-controller="ClienteDetalheCtrl">
<ion-item ng-repeat="inst in selecionaInstalacao">
{{inst.TC}}, {{inst.posicao}}, {{inst.Rolo}}, {{inst.dataEquip}}
</ion-item>
<ion-item ng-show="!selecionaInstalacao.length">No events</ion-item>
</div>
<button ng-click="alteraInstalacao()">Altera</button>
</ion-content>
我需要让它在页面刷新时工作,因为我需要填充文本框下方的网格。 如果有人能帮助我,我将不胜感激。谢谢大家。
【问题讨论】:
-
我从来没有用过Cordova,所以这基本上是一个猜测,但是你有没有考虑过当你刷新任何东西时,任何没有保存的数据都会丢失?因此,如果您在刷新窗口时保存数据,然后重新加载,它可能会起作用。
-
你好,我的朋友 LunarWatcher。我已经将数据保存在全局变量中,但经过一些研究,我发现我做错了什么。我正在使用代码'$window.location.reload();' ,这给了我问题。我会完成这个问题。感谢您的帮助。
标签: javascript android angularjs cordova ionic-framework