Я новичок в Cordova, Ionic Framework и Angular и столкнулся с препятствием при использовании factory.
Моя фабрика настроена следующим образом:
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}}
Как я уже сказал, я очень новичок во всех этих фреймворках, поэтому, возможно, сделал что-то совершенно неправильно с фабрикой и т. Д., Но теперь меня это беспокоит, лол, как массив может быть массивом, но не ?!?
Любая помощь будет принята с благодарностью!
ура ребята
then
что вы видите? - person haki   schedule 12.06.2014