我正在尝试离子。我并不习惯这种网络开发,所以我可能完全偏离轨道。无论如何,我想访问一个SQLite DB并将结果添加到离子幻灯片盒中。
我正在尝试这样的事情:
function selectResultSuccess(tx, results)
{
var div = "";
div += "<ion-slide-box >";
for (var i = 0 ; i < len ; i++)
{
div+="<ion-slide>"
div+= results.rows.item(i).Result ;
div+="</ion-slide>"
}
div += "</ion-slide-box >";
$(".result-list").html(div);
}
HTML:
<ion-content ng-controller="ExampleController" class="result-list">
</ion-content>
app.js:
angModule.controller("ExampleController", function($scope, $ionicSlideBoxDelegate) {
$scope.navSlide = function(index) {
$ionicSlideBoxDelegate.slide(index, 500);
}
$scope.nextSlide = function() {
$ionicSlideBoxDelegate.next(500);
}
$scope.update = function() {
$ionicSlideBoxDelegate.update();
}
});
所以这不起作用,幻灯片没有得到更新,我把所有结果都放在同一页面上(而不是让它们放在不同的幻灯片上),我尝试了很多东西,我相信这不是最好的方法处理,但我找不到符合我需要的东西。
我也试图避免使用SQLite插件。
答案 0 :(得分:1)
所以,你完全错了,但没关系。你的初学者错误仍然是JQuery心态而不是Angular心态。每个人都经历过它。
因此,Angular基于模板,而不是DOM操作(指令除外)。你想要做的是建立一个模板,在一组幻灯片上执行ng-repeat
,存储在某种范围变量中。
让我们从这开始:
<ion-content ng-controller="ExampleController" class="result-list">
<ion-slide-box></ion-slide-box>
</ion-content>
在我们的控制器中,让我们获取这些结果并将它们放在范围变量中。我将在这里做一些“理论”代码,因为我没有关于你在上面做什么的背景。
angModule.controller("ExampleController", function($scope, $ionicSlideBoxDelegate) {
$scope.results = results;
});
我们在范围内得到结果后,让我们对结果进行ng-repeat
。
<ion-content ng-controller="ExampleController" class="result-list">
<ion-slide-box>
<ion-slide ng-repeat="result in results">{{result}}</ion-slide>
</ion-slide-box>
</ion-content>
同样,这不是完整的代码,更指向正确的方向。
我建议从一些基础知识和基础知识开始。
建议从这些文章开始:
http://mcgivery.com/structure-of-an-ionic-app/
http://mcgivery.com/creating-views-with-ionic/
http://mcgivery.com/controllers-ionicangular/
如果你想要更多的学习资源: