我是 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}}
正如我所说,我对所有这些框架都很陌生,所以可能在工厂等方面做了一些完全错误的事情,但它现在困扰着我,哈哈,一个数组怎么可能是一个数组,但不是?!?
非常感激任何的帮助!
欢呼伙计们