私は Cordova、Ionic Framework、および Angular を初めて使用し、ファクトリの使用で障害にぶつかりました。
私の工場は次のように設定されています:
angular.module('test.factories', ['ionic'])
.factory('dataFactory', function($http, $q, $timeout){
dataFactory.getItems = function(search) {
var deferred = $q.defer();
//rest of code to get stuff from SB works fine
//an array used to push items to from sqlite3 tx.executeSql
returnData = [];
deferred.resolve(returnData);
return deferred.promise;
}
}
すべて正常に動作し、コントローラーにデータを取得します。リストの場合、データはng-repeat
ビューで使用して正常にレンダリングされます。
ただし、返された配列の特定の項目にアクセスできません。
dataFactory.getItems("name").then(function(results){
$scope.results = results; //ng-repeat works fine with this
var a1 = results[0]; //returns undefined
for (var i=0;i<results.length;i++) { //doesn't enter the loop}
console.log(results); //shows [{"item","value"}] - JSON.parse returns an error
//chrome devtool bar shows it as an array, and I can drill down into the elements! so
$scope.result = results[0]; //nothing is set
});
これにより混乱が生じ、場合によっては 1 つのアイテムしか返されないなどの問題が発生し、ビューで特定のプロパティをレンダリングしたい場合などがあります。{{result.property}}
私が言ったように、私はこれらすべてのフレームワークに非常に慣れていないので、ファクトリなどで何か完全に間違ったことをした可能性がありますが、それは今私を悩ませています笑どうして配列は配列になることができますか?!?
どんな助けでも大歓迎です!
みんな乾杯