gpt4 book ai didi

json - ionic : I have a scope variable empty from a stringified json

转载 作者:行者123 更新时间:2023-12-02 02:00:10 25 4
gpt4 key购买 nike

我正在尝试从 SQLite 查询中过滤 JSON 结果。当我直接使用 JSON 时,过滤器有效,但当我使用服务中的查询时,过滤器不起作用。然后,$scope.arrayme 就显示为空。

哪里出错了?谢谢!

这是服务:

getSubtipos: function() {
var query = "SELECT subtipos.idsubtipo, subtipos.tipos_idtipo, subtipos.nombre, subtipos.icon, subtipos.val FROM subtipos";
var arraySubtipos = [];
$cordovaSQLite.execute(db, query, []).then(function(res) {
if(res.rows.length > 0) {
for(var i = 0; i < res.rows.length; i++) {
arraySubtipos.push(res.rows.item(i));
}
} else {
console.log("No results found");
}
}, function (err) {
console.error("ERROR: " + err.message);
}).finally(function() {
arraySubtipos = JSON.stringify(arraySubtipos);
});
return arraySubtipos;
}

这是 Controller :

.controller('MenuSubtiposCtrl', function($scope, $filter, miJson, $stateParams, $cordovaSQLite){
var arrayme = JSON.stringify(miJson.getSubtipos());
$scope.arrayme = $filter("filter")(JSON.parse(arrayme), {tipos_idtipo: $stateParams.foo});
})

这就是状态:

.state('app.menusubtipos', {
url: "/menusubtipos/:foo",
views: {
'menuContent': {
templateUrl: "templates/menuSubtipos.html",
controller: "MenuSubtiposCtrl"
}
}
})

最佳答案

问题可能比我立即注意到的要多,但我注意到您在设置变量之前在 getSubtipos 函数中返回了一个变量。

$cordovaSQL.execute() 函数是一个异步函数。因此,您将在设置之前返回 arraySubtipos

更好的方法是在 getSubtipos 中执行以下操作:

var arraySubtipos = [];
return $q.when($cordovaSQLite.execute(db, query, [])
.then(function(res) {
if(res.rows.length > 0) {
for(var i = 0; i < res.rows.length; i++) {
arraySubtipos.push(res.rows.item(i));
}
} else {
console.log("No results found");
}
return JSON.stringify(arraySubtipos);
}));

//然后,在您的 Controller 中执行以下操作:

.controller('MenuSubtiposCtrl', function($scope, $filter, miJson, $stateParams, $cordovaSQLite){
miJson.getSubtipos()
.then(function(arrayMe) {
// No need to stringify it again
$scope.arrayme = $filter("filter")(JSON.parse(arrayme), {tipos_idtipo: $stateParams.foo});
})
.catch(function(error) {
// Handle the error here
});
var arrayme = JSON.stringify(miJson.getSubtipos());
});

我对您使用 JSON.stringify 和 JSON.parse 也有点怀疑。很可能不需要它们,但在不知道数据格式的情况下,我将其保留原样。

关于json - ionic : I have a scope variable empty from a stringified json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30428146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com