从DB

时间:2015-07-10 14:12:45

标签: javascript sqlite cordova ionic-framework

我正在尝试离子。我并不习惯这种网络开发,所以我可能完全偏离轨道。无论如何,我想访问一个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插件。

1 个答案:

答案 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/

如果你想要更多的学习资源:

http://mcgivery.com/100-ionic-framework-resources/